虚函数的使用
在函数run()前加关键字virtual,表示该函数是有多种形态的,即该函数可能被多个对象所拥有,而且功能不一,换句话说多个对象在调用同一个名字的函数产生的效果也不一样,那么系统在执行到由关键字virtual的函数时就会自动判断是哪个对象调用了它,然后调用该对象的同名函数
代码示例
1 #include <iostream> 2 using namespace std; 3 class father 4 { 5 public: 6 virtual void run()const{cout<<"父亲可以跑万米\n";}//关键字virtual 7 void jump()const{cout<<"父亲可以跳五个台阶\n";}//const修饰符 8 }; 9 class son:public father 10 { 11 public: 12 void run()const{cout<<"儿子可以跑十万米\n";} 13 void jump()const{cout<<"儿子可以跳十个台阶\n";} 14 }; 15 int main() 16 { 17 father *p=new son; //指向父类的指针可以指向子类的对象 18 p->jump(); 19 p->run(); 20 delete p; //释放p指针所指向的空间 21 return 0; 22 }
结果演示