#include <iostream>
using namespace std;
class A{
public:
virtual void func(int val=1){
cout << "func A\n";
}
virtual void test(){func();}
};
class B:public A{
public:
void func(int val=0){cout << "func B\n";}
};
int main() {
// your code goes here
B *p = new B;
p->test();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjbGFzcyBBewoJcHVibGljOgoJdmlydHVhbCB2b2lkIGZ1bmMoaW50IHZhbD0xKXsKCQljb3V0IDw8ICJmdW5jIEFcbiI7Cgl9Cgl2aXJ0dWFsIHZvaWQgdGVzdCgpe2Z1bmMoKTt9Cn07CmNsYXNzIEI6cHVibGljIEF7CglwdWJsaWM6Cgl2b2lkIGZ1bmMoaW50IHZhbD0wKXtjb3V0IDw8ICJmdW5jIEJcbiI7fQoJCn07CmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJQiAqcCA9IG5ldyBCOwoJcC0+dGVzdCgpOwoJcmV0dXJuIDA7Cn0=