虚函数的参数要完全一致!这与重载函数的最大区别。
测试代码:
#include<iostream>
using namespace std;
class base{
public:
virtual void func()
{
cout<<"This is in base /n";
}
};
class derive1:public base{
public:
void func()
{
cout<<"This is in derive1/n";
}
};
class derive2:public base{
public:
void func()
{
cout<<"This is in derive2/n";
}
};
int main()
{
base *p;
base a;
derive1 b;
derive2 c;
p=&a;
p->func();
p=&b;
p->func();
p=&c;
p->func();
return 0;
}
测试结果:
This is in base
This is in derive1
This is in derive2
Press any key to continue