读书人

类中对数据进行封装不提供对数据的读

发布时间: 2012-04-19 14:36:43 作者: rapoo

类中对数据进行封装,不提供对数据的读取方法,从安全方面考虑,是否可以从类的对象中剥离出原数据?
类中对数据进行封装,不提供对数据的读取方法,从安全方面考虑,是否可以从类的对象中剥离出原数据?
比如:

C/C++ code
class CA{   int value;   CA(int v);}

这个类中没提供任何读取数据的方法,从安全方面考虑,是否可以从类的对象中剥离出原数据value?

[解决办法]
呃,我错了......实际上,只要通过一些“技巧”就能突破C++的封锁,拿到和修改value的值。
C/C++ code
#include<iostream>using namespace std;class CA{   int value;public:   CA(int v)   {       value=v;   }};int main(){    CA ca(23),cb(55);    CA *p;    int *q,va,vb;    p=&ca;    q=(int *)p;    va=*q;    vb=*((int *)&cb);    cout<<"ca.value="<<va<<endl;    cout<<"cb.value="<<vb<<endl;    *q=100;    cout<<"ca.value="<<*((int *)&ca)<<endl;} 

读书人网 >C++

热点推荐