#include <iostream>

using std::cout;

class Base {
public:
	void doit(int n) { cout << "Base::doit(int " << n << ")\n"; } 
};

class Derived : public Base {
public:
	// using Base::doit;
	void doit(double d) { cout << "Derived::doit(double " << d << ")\n"; }
};

int main() {
	Derived obj1;
	obj1.doit(11);
	cout << "----------------------\n\n";

	Base &obj2 = obj1;
	obj2.doit(12);
	cout << "----------------------\n\n";

	Base *pobj3 = &obj1;
	pobj3->doit(13);
	cout << "----------------------\n\n";

	return 0;
}
