#include <iostream>
using namespace std;
class Base
{
public:
void g() { f(); }
virtual void f() { cout << "Base::f" << endl; }
};
class Derived : public Base
{
public:
Derived() { g(); }
virtual void f() { cout << "Derived::f" << endl; }
};
class MoreDerived : public Derived
{
public:
virtual void f() { cout << "MoreDerived::f" << endl; }
};
int main()
{
MoreDerived md;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgQmFzZQp7CnB1YmxpYzoKICAgIHZvaWQgZygpIHsgZigpOyB9Cgl2aXJ0dWFsIHZvaWQgZigpIHsgY291dCA8PCAiQmFzZTo6ZiIgPDwgZW5kbDsgfQp9OwoKY2xhc3MgRGVyaXZlZCA6IHB1YmxpYyBCYXNlCnsKcHVibGljOgogICAgRGVyaXZlZCgpIHsgZygpOyB9Cgl2aXJ0dWFsIHZvaWQgZigpIHsgY291dCA8PCAiRGVyaXZlZDo6ZiIgPDwgZW5kbDsgfQp9OwoKY2xhc3MgTW9yZURlcml2ZWQgOiBwdWJsaWMgRGVyaXZlZAp7CnB1YmxpYzoKCXZpcnR1YWwgdm9pZCBmKCkgeyBjb3V0IDw8ICJNb3JlRGVyaXZlZDo6ZiIgPDwgZW5kbDsgfQp9OwoKaW50IG1haW4oKQp7CglNb3JlRGVyaXZlZCBtZDsKICAgIHJldHVybiAwOwp9