程序员和黑客

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

题目:

设有如下C++类

class A

{

int value;

public:

A(int n = 0) : value(n) {}

int GetValue()

{

return value;

}

};

请使用某种方式来在类的外部改变私有成员A::value的值。

程序员的可能做法:

class A

{

int value;

public:

A(int n = 0) : value(n) {}

int GetValue()

{

return value;

}

void SetValue(int n)

{

value = n;

}

};

void f()

{

A a;

a.SetValue(5);

}

黑客的可能做法:

void f()

{

A a;

*((int *)&a) = 5;

}

结论:

程序员习惯于遵循既有的限制来增加既有的东西。

黑客习惯于利用既有的东西来打破既有的限制。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航