C++编程——利用指针偏移访问类的私有成员

由于C++中默认是private,所以a,b,c都是私有成员。(指针可是万能之王,然而也是万恶之源。)

using namespace std;
class X{
    int a;
    int b;
    union{
    int c;
    cahr d[4];
    int e;
    };
public:
    int getb(){return b;}
    int getc(){return c;}
    int gete(){return e;}
};

int main()
{
    X x;
    __________(补充代码,实现输入两个10)
    cout<<x.getb()<<endl;
    cout<<x.gete()<<endl;
    return 0;
}

答案:

int *pb = (int *)&x + 1;
*pb = 10;
int *pe = (int *)&x + 2;
*pe = 10;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章