多重继承vtable的问题
为什么这两个指针的数值不一样?
如果不进行强制类型转换,是否真的可能会发生灾难性后果?
反正我是没遇见过,因为没有强制类型转换而发生灾难性后果。
//#include <iostream>using namespace std;class A{public: virtual void ShowA() { cout << "A" << endl; }};class B{public: virtual void ShowB() { cout << "B" << endl; }};class C:public A,public B{public: void ShowA() { cout << "CA" << endl; } void ShowB() { cout << "CB" << endl; } void ShowC() { cout << "C" << endl; }};int main(){ C* c = new C; A* a = (A*)c; B* b = (B*)c; a->ShowA(); b->ShowB(); cout << a << endl; cout << b << endl; return 0;}