#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;
}
