<分区>
由于空类的大小是 1 个字节,但是当这个空类实际上被继承时(在 gcc 编译器上)sizeof(derived1)
的答案是 8 个字节... ,这是怎么发生的,因为 sizeof(derived1)
必须是 sizeof(char)+sizeof(virtual pointer)
,即 1+4..即 5 字节。,那么,这额外的 3 个字节是从哪里来的...???
#include <iostream>
using namespace std;
class Empty
{};
class Derived1 : virtual public Empty<br>
{
char c;
};
int main()
{
cout << "sizeof(Empty) " << sizeof(Empty) << endl;
cout << "sizeof(Derived1) " << sizeof(Derived1) << endl;
return 0;
}