class A
{
public:
virtual void print()
{
cout<<"A class"<<endl;
}
};
class B:public A
{
virtual void print()
{
cout<<"B class"<<endl;
}
B *pb=new A;//会出现错误,赋值BUG
pb->print();
{
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
pb->print();