#include <iostream>
#include <string>
using namespace std;
class A
{
public:
virtual void f()
{
cout<<"A"<<endl;
}
};
class B:public A
{
public:
virtual void f()
{
cout<<"B"<<endl;
}
};
int main()
{
A *pa=new A();//指向A类的指针
pa->f();
B *pb=(B*)pa;
pb->f();
delete pa,pb;
pa=new B();//指向B类的指针
pa->f();
pb=(B*)pa;
pb->f();
return 0;
}
结果为:
A
A
B
B