C++空类的大小问题
class S
{
};
class X
{
};
class Y:virtual public X
{
};
class A:public Y,public S //为何调换两个类 的位置会有不同结果?
{
//char a[2];
};
void main()
{
cout<<sizeof(S)<<endl;
cout<<sizeof(X)<<endl;
cout<<sizeof(Y)<<endl;
cout<<sizeof(A)<<endl;
}
结果如下:
1
1
4
8
class S
{
};
class X
{
};
class Y:virtual public X
{
};
class A:public S,public Y
{
//char a[2];
};
void main()
{
cout<<sizeof(S)<<endl;
cout<<sizeof(X)<<endl;
cout<<sizeof(Y)<<endl;
cout<<sizeof(A)<<endl;
}
结果如下:
1
1
4
4
为何调换两个类的位置会有不同结果?
[解决办法]
没事研究这些蛋疼的问题干啥???
空类编译器分配一个字节用于标记。
单继承后增加一个虚基表指针
多继承增加多个虚基表指针
[解决办法]
I don't think it's helpful to your programming skills. I hope you will put more time in advanced technolgies!
[解决办法]
这可能是vc的bug
[解决办法]
对这个感兴趣可以看对象模型那本,可以对类的实现有很清晰的看法
[解决办法]