class A
{
public:
virtual std::string tostring(){ return "A";}
}
class A{
public:
virtual std::string tostring(){
return "A"; } };
class B:public A{
public:
std::string tostring(){
return "B";}};
class C:public B{
public:
std::string tostring(){
return "C";};
void print(A* p)
{
cout<<p->tostring()<<endl;
}
int main()
{
A a{}; B b{}; C c{};
print(&a);
print(&b);
print(&c);
return 0;
}