c++之理解多层派生
#include <iostream>
using namespace std;
class base0
{
public: void v(void){ cout<<"base0\n"; }
};
class base1:public base0{
public: virtual void v(void){ cout<<"base1\n"; }
};
class A1:public base1{
public: void v(){ cout<<"A1\n"; }
};
class A2:public A1{
public: void v(void){ cout<<"A2\n"; }
};
class B1:private base1{
public: void v(void){ cout<<"B1\n"; }
};
class B2:public B1{
public: void v(void){ cout<<"B2\n"; }
};
void main(void)
{ base1 *pb;
A1 a1;
(pb=&a1)->v();
A2 a2;
(pb=&a2)->v();
}