c++中的对象大小
2013-06-16 23:15
344 查看
sizeof操作符返回操作数的大小,现在我们来单独对class的sizeof操作进行分析。
首先,对于空类:
对其进行sizeof操作: sizeof(BASE) ==1
ps:其实此时的BASE并不是空类,编译器为它生成了3个默认的函数,但不在本文的范畴之内。
有些人对这个1的计算很是不解,很多人觉得应该是0,其实我们可以这样考虑,c++对每个类允许使用new操作来生产对象,那么一个0大小的new操作是无意义的,系统无法知道一个0大小的空间应该返回什么给应用程序。
所以class的最小大小就是1
经过试验可以很容易得到类的大小和类的继承无关系。
只有类成员变量才对sizeof有影响,包括引用变量也是有大小的。
静态的成员变量不会增加sizeof的结果。
以上结果是在XP win32操作系统下,VS2008实验得出。
首先,对于空类:
class BASE { };
对其进行sizeof操作: sizeof(BASE) ==1
ps:其实此时的BASE并不是空类,编译器为它生成了3个默认的函数,但不在本文的范畴之内。
有些人对这个1的计算很是不解,很多人觉得应该是0,其实我们可以这样考虑,c++对每个类允许使用new操作来生产对象,那么一个0大小的new操作是无意义的,系统无法知道一个0大小的空间应该返回什么给应用程序。
所以class的最小大小就是1
经过试验可以很容易得到类的大小和类的继承无关系。
只有类成员变量才对sizeof有影响,包括引用变量也是有大小的。
静态的成员变量不会增加sizeof的结果。
以上结果是在XP win32操作系统下,VS2008实验得出。
相关文章推荐
- C++ 类对象大小计算(一)常规情况
- C++对象大小讨论
- 关于理解《C++ 对象模型》中:把单一元素的数组放在末尾,struct可以拥有可变大小的数组
- C++中 string对象的大小比较
- c++中实例化对象的大小(转)
- C++ 类对象大小计算(二)含有虚函数类
- c++中类对象分配内存大小与虚继承的一些问题
- 第三十九题 关于C++中类的对象的大小
- c/c++ sizeof运算符详解以及对象大小
- C++中一个类对象占用的内存空间大小
- 从零开始学C++之对象的使用(一):static 成员变量、static 成员函数、类/对象的大小
- 【深入探索c++对象模型】类对象所需内存大小讨论续写
- Data语意学之虚继承和虚函数对C++对象内存模型造成的影响(类/对象的大小)
- C++对象大小剖析整理
- [置顶] 从零开始学C++之虚继承和虚函数对C++对象内存模型造成的影响(类/对象的大小)
- c++练习-类对象对比大小
- C++中类对象所占空间的大小
- 1)C++对象大小计算
- 从零开始学C++之对象的使用(一):static 成员变量、static 成员函数、类/对象的大小
- C++对象大小讨论