#include <iostream>
using namespace std;
class A
{
public:
A() {
//init(this);
};
virtual void func()=0;
private:
void init(A *pA) {
pA->func();
}
};
void A::func() {
cout<<"A::func"<<endl;
}
class B : public A
{
public:
virtual void func(){
cout<<"B::func"<<endl;
A::func();
};
};
int main() {
// your code goes here
A * a = new B;
a->func();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCmNsYXNzIEEKewoJcHVibGljOgoJQSgpIHsKCQkvL2luaXQodGhpcyk7Cgl9OwoJdmlydHVhbCB2b2lkIGZ1bmMoKT0wOwoJcHJpdmF0ZToKCXZvaWQgaW5pdChBICpwQSkgewoJCXBBLT5mdW5jKCk7Cgl9Cn07CiAKIHZvaWQgQTo6ZnVuYygpIHsKIAljb3V0PDwiQTo6ZnVuYyI8PGVuZGw7CiB9CiAKY2xhc3MgQiA6IHB1YmxpYyBBCnsKIHB1YmxpYzoKICAgdmlydHVhbCB2b2lkIGZ1bmMoKXsKICAgCQljb3V0PDwiQjo6ZnVuYyI8PGVuZGw7CiAgIAkJQTo6ZnVuYygpOwogICB9Owp9OwogCiAKIAppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCUEgKiBhID0gbmV3IEI7CglhLT5mdW5jKCk7CglyZXR1cm4gMDsKfQ==