分析程序员和黑客的区别
题目: 设有如下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; }
结论: 程序员习惯于遵循既有的限制来增加既有的东西。 黑客习惯于利用既有的东西来打破既有的限制。
| 出处: 软件屋 日期: 2004-8-25 |
好:3 一般:0 差:1 |
|