没有数据成员的类的大小是多少?
class CTest
{
public:
void func1()
{
cout<<"====func1===="<<endl;
}
};
class CC
{
public:
virtual void func1()
{
cout<<"====func1===="<<endl;
}
};
有如下疑问:
1.sizeof( CC )大小是4,那是因为有虚函数指针
2.但是sizeof( Ctest ) 结果是1,我想问那个1是谁的大小? 我用的是g++编译器
[解决办法]
[解决办法]
一)
class CBase
{
};
sizeof(CBase)=1;
为什么空的什么都没有是1呢?
c++要求每个实例在内存中都有独一无二的地址。//注意这句话!!!!!!!!!!
空类也会被实例化,所以编译器会给空类隐含的添加一个字节,这样空类实例化之后就有了独一无二的地址了。所以空类的sizeof为1。
看下这篇文章
http://www.cnblogs.com/pipicfan/archive/2012/06/20/2556213.html