观察虚继承+虚函数在内存中的结构
#include<iostream>
using namespace std;
class A
{
public:
virtual void fun1()
{
cout << "A::fun1" << endl;
}
virtual void fun2()
{
cout << "A::fun2" << endl;
}
int _a = 1;
};
class B :virtual public A
{
public:
virtual void fun1()
{
cout << "B::fun1" << endl;
}
virtual void fun3()
{
cout << "B::fun3" << endl;
}
int _b = 2;
};
int main()
{
B b;
A* a = &b; // 要注意这种写法,确保他能准确跳到下一个虚表处
A tem;
return 0;
}