#include<iostream>
using namespace std;
int main(){
class A{
public:
virtual void foo(){
cout<<"A::foo() is called"<<endl;
}
};
class B:public A{
public:
void foo(){
cout<<"B::foo() is called"<<endl;
}
};
A *a = new B();
a->foo(); // 在这里,a虽然是指向A的指针,但是被调用的函数(foo)却是B的!
return 0;
}
输出结果:B::foo() is called
转载于:https://www.cnblogs.com/quan1/p/6696171.html