#include <iostream>
using namespace std;
class A
{
public:
virtual void fun()
{
cout<<"base ";
}
};
class B: public A
{
public:
void fun(){
cout<<"derived ";
}
};
class C: public A
{
};
int main()
{
A *a = new B;
a->fun();
A *b = new C;
b->fun();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgQQp7CiAgICAgcHVibGljOgogICAgICAgICAgdmlydHVhbCB2b2lkIGZ1bigpCgkJICB7CiAgICAgICAgICAgICAgIGNvdXQ8PCJiYXNlICI7CiAgICAgICAgICB9Cn07CmNsYXNzIEI6IHB1YmxpYyBBCnsKICAgICBwdWJsaWM6CiAgICAgICAgICB2b2lkIGZ1bigpewogICAgICAgICAgICAgICBjb3V0PDwiZGVyaXZlZCAiOwogICAgICAgICAgfQp9OwoKY2xhc3MgQzogcHVibGljIEEKewoKfTsKCmludCBtYWluKCkKewogICAgIEEgKmEgPSBuZXcgQjsKICAgICBhLT5mdW4oKTsKCSAKCSBBICpiID0gbmV3IEM7CgkgYi0+ZnVuKCk7CgogICAgIHJldHVybiAwOwp9