首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

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

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

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;} 

热点排行