我是靠谱客的博主 故意自行车,最近开发中收集的这篇文章主要介绍C++类的私有成员访问,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

C++类的内存布局

  1. C++的非静态数据成员都存放在数据段,类的首地址即类的第一个数据成员的地址;
  2. 下面代码尝试修改dValue为3.14,使用指针修改类的成员变量时,需要注意该类的对齐方式;
  3. 如第4条代码为4字节对齐,修改dValue的值时需要在int的基础上加上偏移量1;如果是8字节对齐,则代码是
*((double*)&tstObj + 1) = 3.14;
  1. 完整存取代码
#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++类的私有成员访问所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部