C++空クラスと多重継承空クラスはメモリ領域を占有する
1771 ワード
1、コード結果で出力
2、結果
3、分析
空のクラスが占める内部空間は1です.
単一継承または多重継承空クラスの空クラスが占める空間は1ですか?
しかし、虚継承は虚ポインタに関し、ポインタサイズは4であるため、虚継承後の空クラスが占める空間は4である.
#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である.