我们用程序来实现一个空类和一个多重继承的空类,看看它们的大小是多少?
#include<iostream>
using namespace std;
class A {
};
class A2 {
};
class B :public A {
};
class C :public A, public A2 {
};
class D :public virtual A {
};
int main() {
cout << sizeof(A) << endl;
cout << sizeof(B) << endl;
cout << sizeof(C) << endl;
cout << sizeof(D) << endl;
// 使得dos界面不闪屏
int i;
cin >> i;
return 0;
}
输出的结果如下:
1
1
1
4
答案:空类占的空间为1,单一继承的空类空间也为1,多重继承的空类空间还是1,但是虚继承涉及虚表(虚指针),所以sizeof(D)的大小为4