class A
{
virtual void display(){cout<<"我是A"<<endl;}
}
class B:public A
{
void display(){cout<<"我是B"<<endl;}
}
class C:public A
{
void display(){cout<<"我是C"<<endl;}
}
void display(A s)//以A类型作为参数的顶层函数,不同于类中的成员函数
{
s.display();//调用对象s的成员函数
}
int main()
{
A x1;
B x2;
C x3;
display(x1);//显示:我是A。
display(x2);//参数x2向上转换为x1类型,显示:我是B。
display(x3);//参数x3向上转换为x1类型,显示:我是C。
}