C++ 空类与多重继承的空类占用内存空间
1、输出以代码结果
#include <iostream> using namespace std; class A {}; class A2 {}; class B : public A {}; class C : public A, public A2 {}; class D : public virtual B {}; int main() { cout << sizeof(A) << endl; cout << sizeof(B) << endl; cout << sizeof(C) << endl; cout << sizeof(D) << endl; return 0; }
2、结果
1 1 1 4
3、析
空类所占内空间为1
单一继承或多重继承空类的空类所占空间还是1
但虚继承涉及虚指针,指针大小为4,故虚继承后空类所占空间为4