#include <iostream>
using namespace std;
struct Base {
virtual void foo(int x) { cout << "int " << x; }
virtual void foo(double x) { cout << "double " << x; }
virtual void foo(char x) { cout << "char " << x; }
};
struct Derived : public Base {
virtual void foo(double x) { cout << "DOUBLE " << x; }
};
int main()
{
Derived d;
d.foo(7);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBCYXNlIHsKCXZpcnR1YWwgdm9pZCBmb28oaW50IHgpIHsgY291dCA8PCAiaW50ICIgPDwgeDsgfQoJdmlydHVhbCB2b2lkIGZvbyhkb3VibGUgeCkgeyBjb3V0IDw8ICJkb3VibGUgIiA8PCB4OyB9Cgl2aXJ0dWFsIHZvaWQgZm9vKGNoYXIgeCkgeyBjb3V0IDw8ICJjaGFyICIgPDwgeDsgfQp9OwoKc3RydWN0IERlcml2ZWQgOiBwdWJsaWMgQmFzZSB7Cgl2aXJ0dWFsIHZvaWQgZm9vKGRvdWJsZSB4KSB7IGNvdXQgPDwgIkRPVUJMRSAiIDw8IHg7IH0KfTsKCmludCBtYWluKCkKewoJRGVyaXZlZCBkOwoJZC5mb28oNyk7CglyZXR1cm4gMDsKfQo=