#include <iostream>
using namespace std;
struct A {
virtual void Call() {
cout << "A" << endl;
}
virtual void CallCall() {
Call();
}
};
struct B : A {
virtual void Call() {
cout << "B" << endl;
}
};
int main() {
B b;
A* a = &b;
a->Call();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IEEgewoJdmlydHVhbCB2b2lkIENhbGwoKSB7CgkJY291dCA8PCAiQSIgPDwgZW5kbDsKCX0KCXZpcnR1YWwgdm9pZCBDYWxsQ2FsbCgpIHsKCQlDYWxsKCk7Cgl9Cn07CgpzdHJ1Y3QgQiA6IEEgewoJdmlydHVhbCB2b2lkIENhbGwoKSB7CgkJY291dCA8PCAiQiIgPDwgZW5kbDsKCX0KfTsKCmludCBtYWluKCkgewoJQiBiOwoJQSogYSA9ICZiOwoJYS0+Q2FsbCgpOwoJcmV0dXJuIDA7Cn0=