先得出结论:
1. 空类大小为1(仅标识类的存在),如果空类中加了virtual关键字则是4(虚函数表指针)。
2. 子类指针转父类时, 强转、static_cast、dynamic_cast效果一样!
3. 强转时,A,B 指针值 与 C的指针值可能相同或不同!
4.虚函数原理,请查阅http://blog.youkuaiyun.com/hq354974212/article/details/76985270
情形一:
class A
{
public:
void AAA() { printf("A::AAA();\n"); }
};
class B
{
public:
void BBB() { printf("B::BBB();\n"); };
};
class C :public A, public B
{
public:
void AAA()
{
printf("C::AAA();\n");
}
void BBB()
{
printf("C::BBB();\n");
}
};
此处C的大小并不是想象中的1+1=2,而是1,因为空类只需要占1字节即可!