#include <iostream>
using namespace std;
class person{};
class derived2:virtual public person{};
class derived1:virtual public person{};
class derived3: virtual public derived1,virtual public derived2{};
int main()
{
cout<<sizeof(animal)<<endl;
cout<<sizeof(person)<<endl;
cout<<sizeof(derived1)<<endl;
cout<<sizeof(derived2)<<endl;
cout<<sizeof(derived3)<<endl;
return 0;
}
在xp,vs2008下编译出来的结果:
1
4
4
12
不知道为什么会有这样的结果,在《Inside the C++ object》中有涉及。希望能弄明白是怎么回事。