虚继承类长度
程序员文章站
2022-07-12 11:06:56
...
#include<iostream> using namespace std; class A{ char k[3];//2.由于内存对齐,故它的长度也是4 public: virtual void aa(){}//1.它有一个虚指针,长度是4 }; //由于是虚继承要加上A的长度:8+8=16 class B:virtual public A{ char j[3]; public: virtual void bb(){} }; //非虚继承,只需加上普通指针的长度:8+4 class C:public A{ char k[3]; public: virtual void cc(){} }; //由于是虚继承加上B的长度:16+8=24 class D:virtual public B{ char h[3]; public: virtual void dd(){} }; int main() { cout << sizeof(A) << endl; cout << sizeof(B) << endl; cout << sizeof(C) << endl; cout << sizeof(D) << endl; } 8 16 12 24
上一篇: java中内部类的使用