#include <iostream>
#include <string>

class One {
public:
	virtual void id(const std::string &what = "I'm class One!") const
	{
		std::cout << "class One says: " << what << std::endl;
	}

	virtual ~One()
	{
	}
};

struct Two: One {
	void id(const std::string &what = "I'm struct Two!") const
	{
		std::cout << "struct Two says: " << what << std::endl;
	}
};

int main()
{
	One *o = new Two;

	o->id();
	delete o;
}