#include <iostream>
using namespace std;
class Base {
public:
~Base() {}
virtual void f(int i = 10) {
cout << "Base::f : " << i << endl;
}
};
class Derived : public Base {
public:
Derived() {}
void f(int i = 20) {
cout << "Derived::f : " << i << endl;
}
};
int main(int argc, char const* argv[]) {
Base b;
Derived d;
Base* pb = new Derived;
b.f();
d.f();
pb->f();
delete pb;
return 0;
}