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;

 

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