1、通过指针访问数据成员
// 该类只有 私有数据成员
class Stu {
private:
int a;
char c;
public:
Stu(int a, char c) : a(a), c(c) {
//this->a = a;
//this->c = c;
}
};
// 通过指针 访问 私有数据成员
int main() {
Stu st(10, 'a');
int *pa = (int *)&st; // 访问 a, 强转
char *pc = (char *)(pa+1); // 访问 c, 偏移+强转
cout << *pa << endl; // 输出 a
cout << *pc << endl; // 输出 c
getchar();
return 0;
}
该类只有私有成员变量,且内部没有公有成员函数,因此对象无法直接访问内部私有成员,但是可以通过特殊的方法,即指针来访问。
通过以上例子可以看出,如果知道了类的内部结构,通过指针能够很容易访问到对象的内部成员,对于安全性来讲,指针是个极大隐患。