在这里,在这段代码中,ob1 的大小是 16,这很好(因为虚拟指针),但我不明白为什么 ob2 的大小是 24。
#include <iostream>
using namespace std;
class A {
int x;
};
class B {
int y, z;
};
class C : virtual public A {
int a;
};
class D : virtual public B {
int b;
};
int main() {
C ob1;
D ob2;
cout << sizeof(ob1) << sizeof(ob2) << "\n";
}
我希望 ob2 的大小为 20,但输出为 24