Inside the C++ Object Model:3、Data 语意学

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_30534935/article/details/102670588

class 的大小受到三个因素的影响:

语言本身所造成的额外负担

编译器对于特殊情况的优化处理

Alignment 的限制


3.1 Data Member 的绑定



3.2 Data Member 的布局


Nonstatic data members 在 class object 中的排列顺序将和其被声明的顺序一样,任何中间介入的 static data members 都不会背放进对象布局之中。



3.3 Data Member 的存取


Static Data Members


Nonstatic Data Members



3.4 “继承” 与 Data Member


在 C++ 继承模型中,一个 derived class object 所表现出来的东西,是其自己的 members 加上其 base classes members 的综合。


只要继承不要多态


加上多态


多重继承


虚拟继承



3.5 对象成员的效率



3.6 指向 Data Members 的指针


可用以决定 vptr 是放在 class 的起始处或是尾端,可用来决定 class 中的 access sections 的顺序。


“指向 Members 的指针” 的效率问题

猜你喜欢

转载自blog.csdn.net/qq_30534935/article/details/102670588