#include"iostream"
class Base {
public:
virtual int fcn() { return 0; };
};
class D1 :public Base {
public:
int fcn(int) { return 0; };
virtual void f2() {};
};
class D2 :public D1 {
public:
int fcn(int) { return 0; };
int fcn() { return 0; };
void f2() {};
};
int main() {
Base bobj; D1 d1obj; D2 d2obj;
Base* bp1 = &bobj, * bp2 = &d1obj, * bp3 = &d2obj;
bp1->fcn();
bp2->fcn();
bp3->fcn();
D1* d1p = &d1obj; D2* d2p = &d2obj;
//bp2->f2(); base中没有f2()
d1p->f2();
d2p->f2();
return 0;
}