关于C++类对象所占空间大小问题3
#include <iostream>
#include <memory>
using namespace std;
class CA
{
public:
double k;
public:
void f()
{
cout<<"CA::F"<<endl;
}
};
class CB:virtual public CA
{
};
class CC:virtual public CA
{
};
class CD:public CB,public CC
{
};
int main()
{
CD d;
d.f();
cout<<sizeof(d)<<endl;
return 0;
}
问题:
为什么在基类中将变量k声明为int时,程序运行显示12(4*3),而将变量k声明为double时,程序运行显示16(?*?)?