class A{ virtual void f(){} }; class B{ virtual void f(){} }; class C:public A,public B{ //virtual void f(){} };
多重继承情况下,看父类有没有虚函数。
sizeof(A) = 8
sizeof(B) = 8
sizeof(C) = 16
在我的64位机器上这个结果。也就是,保存了两个虚表。
class A{ virtual void f(){} }; class B{ }; class C:public A,public B{ };
接下来这种,sizeof(A) = 8, sizeof(B) = 1, sizezof(C) = 8。只保存了一个虚表。