第十四周 阅读程序(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的对象;),此时需要进行指针类型的转换。 把指向派生类的转换为指向基类的。所以输出此结果。