虚函数的体验

来源:互联网 发布:人民币入篮 知乎 编辑:程序博客网 时间:2024/06/10 18:45
/** 程序的版权和版本声明部分* Copyright (c)2012, 烟台大学计算机学院学生* All rightsreserved.* 文件名称: object.cpp* 作者:王飞* 完成日期:2013 年5月 31日* 版本号: v1.0* 输入描述:无* 问题描述:虚函数的体验* 程序输出:如下*/#include <iostream>using namespace std;class Vehicle       //交通工具{    public :    //定义输出函数为虚函数   virtual void run()const{cout<<"run a vehicle."<<endl;}};class Car: public Vehicle  //汽车{  public :  //定义输出函数为虚函数  virtual void run()const  {      cout<<" run a car. "<<endl;  }};class Airplane: public Vehicle  //飞机{    public :    //定义输出函数为虚函数   virtual void run()const    {        cout<<"run a airplane ."<<endl;    }};int main (){    cout<<"(a) 直接用对象访问成员函数:"<<endl;    Vehicle v;    v.run();    Car car;    Airplane airplane;    car.run();    airplane.run();    cout<<"(b) 用指向基类的指针来访问成员函数:"<<endl;    Vehicle *vp;    vp=&car;    vp->run();    vp=&airplane;    vp->run();    return 0;}


输出结果:

 

心得体会:

对于虚函数自己的理解:简单地说,那些被virtual关键字修饰的成员函数,就是虚函数。虚函数的作用,用专业术语来解释就是实现多态性(Polymorphism),多态性是将接口与实现进行分离;用形象的语言来解释就是实现以共同的方法,但因个体差异而采用不同的策略。利用指针来逐一的进行访问。调用的函数在基类中被说明为虚函数,那么子类中该函数也自动成为虚函数,调用时会根据指针所指向的对象调用相应类的虚函数.实现动态联编。

原创粉丝点击