类的大小与用此类定义的对象的大小一样吗?
我在vc6.0中做了个简单程序:
1.新定义了个类:
class myClass
{
public:
myClass();
virtual ~myClass();
protected:
private:
};
myClass::myClass()
{
}
myClass::~myClass()
{
}
2.我在main里定义了该类的对象:
myClass a;
cout << sizeof(a) << endl; //当测试类大小时替换成sizeof(myClass)
显示它们的大小都是4个字节.
3.问题1:
类的大小与用此类定义的对象的大小始终都是一样的吗? 此处是否仅仅是个巧合.
问题2:
当我把析构函数声明中的virtual去掉时大小都变成了1个字节,搞不清楚原因,有人能解释下吗?
欢迎讨论!