虚函数定义为:
virtual type functionname(){/函数体定义/}
#include <iostream>
using namespace std;
class animal{
public:
virtual void info(){
cout<<"animal class."<<endl;
}
};
class dog:public animal{
public:
void info(){
cout<<"dog class."<<endl;
}
};
class cat:public animal{
public:
void info(){
cout<<"cat class."<<endl;
}
};
void test(animal& a) //如果去掉&, 输出的也全都是animal
{
a.info();
}
int main()
{
animal a;
dog d;
cat c;
test(a);
test(d);
test(c);
return 0;
}
在C++中定义虚函数是在函数前加个virtual关键字,上面例子的结果为:
如果在基类(animal)函数中没有加virtual关键字的话,就会输出: