#include <stdio.h>
#include <iostream>
using namespace std;
class Base {
public:
virtual void printName();
};
void Base::printName() {
cout << "Base" << endl;
}
class A : public Base {
public:
void printName();
};
void A::printName() {
cout << "A" << endl;
}
class B : public Base {
public:
void printName();
};
void B::printName() {
cout << "B" << endl;
}
int main(void) {
A a;
Base* ba = &a;
ba->printName();
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxpb3N0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY2xhc3MgQmFzZSB7CnB1YmxpYzoKICAgdmlydHVhbCB2b2lkIHByaW50TmFtZSgpOwp9Owp2b2lkIEJhc2U6OnByaW50TmFtZSgpIHsKICAgY291dCA8PCAiQmFzZSIgPDwgZW5kbDsKfQpjbGFzcyBBIDogcHVibGljIEJhc2UgewpwdWJsaWM6CnZvaWQgcHJpbnROYW1lKCk7Cn07CnZvaWQgQTo6cHJpbnROYW1lKCkgewogICBjb3V0IDw8ICJBIiA8PCBlbmRsOwp9CmNsYXNzIEIgOiBwdWJsaWMgQmFzZSB7CnB1YmxpYzoKdm9pZCBwcmludE5hbWUoKTsKfTsKdm9pZCBCOjpwcmludE5hbWUoKSB7CiAgIGNvdXQgPDwgIkIiIDw8IGVuZGw7Cn0KaW50IG1haW4odm9pZCkgewoJQSBhOwoJQmFzZSogYmEgPSAmYTsKCWJhLT5wcmludE5hbWUoKTsKCXJldHVybiAwOwp9Cg==