我是靠谱客的博主 故意自行车,这篇文章主要介绍C++类的私有成员访问,现在分享给大家,希望可以做个参考。

C++类的内存布局

  1. C++的非静态数据成员都存放在数据段,类的首地址即类的第一个数据成员的地址;
  2. 下面代码尝试修改dValue为3.14,使用指针修改类的成员变量时,需要注意该类的对齐方式;
  3. 如第4条代码为4字节对齐,修改dValue的值时需要在int的基础上加上偏移量1;如果是8字节对齐,则代码是
复制代码
1
2
*((double*)&tstObj + 1) = 3.14;
  1. 完整存取代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
#pragma pack(4) class Tst { private: int iValue; double dValue; float fValue; }; Tst tstObj; *(double*)((int*)&tstObj + 1) = 3.14; *((float*)&tstObj + 3) = 1.57f;

最后

以上就是故意自行车最近收集整理的关于C++类的私有成员访问的全部内容,更多相关C++类内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部