600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 【C】sizeof(空结构体/空类)的大小

【C】sizeof(空结构体/空类)的大小

时间:2020-10-29 03:13:24

相关推荐

【C】sizeof(空结构体/空类)的大小

sizeof(空类/空结构体) = 1;

#include <iostream> using namespace std; // 空类 class ClassA { }; // 继承空类的空类 class ClassB : public ClassA { }; // 空结构体 struct StructC { }; // 主函数 int main() { cout<<"A: "<<sizeof(ClassA)<<endl; cout<<"B: "<<sizeof(ClassB)<<endl; cout<<"C: "<<sizeof(StructC)<<endl; return 0; }

测试结果:

空类,没有任何成员变量或函数,即没有存储任何内容;

但是由于空类仍然可以实例化,编译器就需给它分配内存空间,来指示类实例的地址。

这里编译器默认分配了一个字节(如:char),以便标记可能初始化的类实例,同时使空类占用的空间也最少(即1字节)。

深度探索c++对象模型中是这样说的: 那是被编译器插进去的一个char ,使得这个class的不同实体(object)在内存中配置独一无二的地址。 也就是说这个char是用来标识类的不同对象的。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。