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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/jacken123456/article/details/90245966

由于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;

猜你喜欢

转载自blog.csdn.net/jacken123456/article/details/90245966