#include <iostream>
using namespace std;
class A {
public:
virtual void x() {
cout << 1;
}
};
class B : public A {
public:
virtual void x() {
cout << 2;
}
};
int main() {
A *a;
B b;
a = &b;
A a1 = b;
cout << "a : ";
a->x();
cout << " b : ";
b.x();
cout << " a1 : ";
a1.x();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgQSB7CglwdWJsaWM6CgkJdmlydHVhbCB2b2lkIHgoKSB7CgkJCWNvdXQgPDwgMTsKCQl9Cn07CgpjbGFzcyBCIDogcHVibGljIEEgewoJcHVibGljOgoJCXZpcnR1YWwgdm9pZCB4KCkgewoJCQljb3V0IDw8IDI7CgkJfQp9OwoKaW50IG1haW4oKSB7CgkKCUEgKmE7CglCIGI7CglhID0gJmI7CglBIGExID0gYjsKCWNvdXQgPDwgImEgOiAiOwoJYS0+eCgpOwoJY291dCA8PCAiIGIgOiAiOwoJYi54KCk7Cgljb3V0IDw8ICIgYTEgOiAiOwoJYTEueCgpOwoJCglyZXR1cm4gMDsKfQoK