深度探索C++对象模型———Data Member的布局
来源:互联网 发布:嘉兴软件开发制作 编辑:程序博客网 时间:2024/06/05 03:30
3.2 Data Member的布局(成员变量的布局)
C++类对象中成员变量是以什么样的空间内存而布局的呢?
对于下面一组data members(成员变量):
class Point3d {public: // ...private: float x; static List<Point3d *> *freeList; float y; static const int chunkSize = 250; float z;};
根据前面提高过的C++的对象模型C++对象模型可知:
只有non-static成员变量和指向虚函数表的指针(没有虚函数则不会生成这个指针)保存在class object中。
其余的static成员变量和static成员函数以及non-static成员函数都存放在程序的data segment中,和class object无关。
所以:non-static成员变量在class object中的排列顺序和被声明的顺序一样,任何中间介入的static data members如freeList 和chunkSize都不会放入对象布局当中。在上述例子里,每一个Point3d对象是由三个float组成,次序是x,y,z。但它们仅仅保证“较晚出现的成员变量在class object中有较高的地址”。也就是说各个成员变量不一定连续,比如一些边界调整(alignment)就可能需要填补一些bytes在其中。
阅读全文
0 0
- 深度探索C++对象模型——Data Member的布局(2)书上的错误
- 深度探索C++对象模型———Data Member的布局
- 《深度探索C++对象模型》:Data member的布局
- 深度探索C++对象模型---Data member的布局(Data member Layout)
- 深度探索C++对象模型———Data Member的绑定
- 深度探索C++对象模型------Data member的绑定
- 深度探索C++对象模型----data member的存取
- 深度探索C++对象模型--继承与Data Member
- 《深度探索C++对象模型》阅读笔记(一)——对象的内存布局1
- [温故而知新] 《深度探索c++对象模型》——对象数据成员的内存布局
- 《深度探索C++对象模型》:member functions
- 深度探索C++对象模型学习笔记——Data语意学
- 《深度探索C++对象模型》读书笔记——Data语意学【for_wind】
- 【C++】深度探索C++对象模型之虚拟成员函数(virtual member function)
- C++对象模型——Data Member的绑定(第三章)
- C++对象模型——Data Member的存取(第三章)
- 深度探索C++对象模型-指向Data Members的指针
- 深度探索C++对象模型----Data语义学
- 数据结构-队列
- flask-用户认证(下)
- 代理商订货管理系统1.2版(分销模式+积分模式)正式上线
- 让我们的socket服务支持多线程
- 测试架构师之路—python基于大数据类型的持续化测试设计
- 深度探索C++对象模型———Data Member的布局
- 17. 信号量,共享内存和消息队列
- 文件上传注意事项
- 1427:砝码称重
- DevOps实践-打造自服务持续交付-上
- linux打包压缩解压命令大全
- C#使用Xamarin开发可移植移动应用进阶篇(9.混淆代码,防止反编译)
- Web前端开发Chrome插件
- java中从高德地图爬取数据