VC++ 一个空类占多少空间和多重继承类占多少空间

来源:互联网 发布:mysql中if exists用法 编辑:程序博客网 时间:2024/05/17 17:57

我们用程序来实现一个空类和一个多重继承的空类,看看它们的大小是多少?
#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

0 0
原创粉丝点击