基类虚函数重写调用问题

来源:互联网 发布:中国海洋大学网络教育 编辑:程序博客网 时间:2024/06/14 23:54
class A
{
public:
virtual void print()
{
cout<<"A class"<<endl;
}
};


class B:public A
{
virtual void print()
{
cout<<"B class"<<endl;
}

};


A a;

a.print();  //输出A class


B b;
b.print();   //输出B class


A *a=new B;
a->print();    //输出B class


B *pb=new A;//会出现错误,赋值BUG
pb->print();


若prin函数没有声明是virtual 则

A a;

a.print();  //输出A class


B b;
b.print();   //输出A class


A *a=new B;
a->print();    //输出B class


B *pb=new A;//会出现错误,赋值BUG
pb->print();


0 0