第十四周 阅读程序(1)

来源:互联网 发布:美元加息的影响 知乎 编辑:程序博客网 时间:2024/05/20 14:39
/* * 程序的版权和版本声明部分 * Copyright (c)2013, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称:* 作者:袁静 * 完成日期: 2013年6月4日 * 版本号: v1.0 * 输入描述:无 * 问题描述 * 程序输出:*/  //请回答:当基类的指针指向派生类时,用指针调用同名成员函数,          执行的是基类的成员函数还是派生类的成员函数?为什么?//#include <iostream>using namespace std;class Vehicle{public:      void run() const      {          cout<<"run a Vehicle."<<endl;      }};class Car:public Vehicle{public:      void run() const      {          cout<<"run a Car."<<endl;      }};class Airplane:public Vehicle{public:      void run () const      {          cout<<"run a Airplane."<<endl;      }};int main(){    cout<<"1.直接用第用对象访问成员函数:"<<endl;    Vehicle v;    v.run();    Car c;    c.run();    Airplane a;    a.run();    cout<<"2.用指针基类的指针访问成员函数:"<<endl;    Vehicle *vp;    vp=&c;    vp->run();    vp=&a;    vp->run();    return 0;}答:vp定义为指向基类对象的指针。vp=&car(此时,vp为指向派生类Car的对象;),此时需要进行指针类型的转换。   把指向派生类的转换为指向基类的。所以输出此结果。

原创粉丝点击