#include <iostream>
using namespace std;
class Base{
public:
virtual void print(){
cout << "Base::print()" << endl;
}
};
class Derive:public Base{
public:
void print(){
cout << "Derive::print()" << endl;
}
};
void fun(Base& obj){
obj.print();
}
int main(){
Derive d;
d.print();
fun(d);
return 0;
}
两个要点:第一,函数前加虚函数标识符virtual; 第二,对象类型变成引用&。