有了关于继承、虚继承等相关知识的了解。现在我们主要针对类的大小问题来做一个具体的探讨吧。
一、空类
1、真空类
class CNull
{
};
大小就是1
主要是因为空类还是要被实例化的,为了保证每个实例在内存中都有独一无二的地址。编译器就给空类隐含的增加了一个字节。
2、空类
class CNull2
{
public:
CNull2(){
printf("Construct/n");}
~CNull2(){
printf("Desctruct/n");}
void Foo(){
printf("Foo/n");}
};
大小是1
这种情况和空类是差不多的,内部成员函数并不会影响类的大小
二、继承
1、简单类
class COneMember