用指针访问类中private成员

来源:互联网 发布:java项目如何上线 编辑:程序博客网 时间:2024/05/20 00:14

C++中,利用指针可以访问private数据成员。

先看下面代码:

程序执行的结果如下:

x::1

y::2

getClassValue:: 1

getClassValue:: 2

从执行的结果可以看出,程序确实访问到了类中的private成员变量。

在上面代码中,int* flag = (int*)(ctest);声明了一个指向类对象的指针,这一步是最重要的,先有一个指针指向对象的初始地址,之后移动这个指针,就可以访问到类的成员。从执行的结果来看,类中成员在内存中的存放顺序应该有如下表示:

           

由上图可以看到,若顺序移动指针flag,则可以顺序访问到类的private变量xy。程序的输出也符合这样的推测。

原创粉丝点击