第十三周项目—阅读、修改和运行关于交通工具类的程序(2)
2016-05-24 14:28
363 查看
/* *Copyright(c) 2016.烟台大学计算机与控制工程学院 *ALL rights reserved. *文件名称:test.cpp *作者:杨驰 *完成日期:2016年5月24 *问题描述:当基类的指针指向派生类时,用指针调用同名 成员函数,执行的是基类的成员函数, 还是派生类的成员函数?为什么会这样?什么是多态性? */ #include <iostream> using namespace std; class Vehicle//交通工具 { public: virtual 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<<"(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; }
运行结果:
知识总结:
基类的成员函数是虚函数,当基类的指针指向派生类时,用指针调用同名成员函数,执行的是派生类的成员函数。
实现了多态性(一个同名的成员函数,在不同的类中有不同的执行结果)
相关文章推荐
- (高效开发)Android手机间使用socket进行文件互传实例
- 超强、超详细Redis数据库入门教程
- 【Android】Eclipse上string.xml发生Found text“ ” where item tag is expected错误,如何解决
- 二分查找-有重复数和无重复数
- 第十三周项目1-分数类中的运算符重载(3)
- 第十三周项目4 立体类族共有的抽象类
- Node.JS连接数据库
- Python 中的多维字典
- 教你如何在linux上装逼,shell中颜色的设置
- HTML中 meta http-equiv属性
- apache 多站点配置
- 科普:浅谈 Hellinger Distance
- codeoforces 671B Robin Hood
- HTML5鼠标悬停在矩形上可以看到坐标
- sdut 2884 Painting Cottages 计算几何
- vim 插件 youcompleteme full install
- 用springmail写发送邮件服务和一个困扰我很久但是很简单的问题
- python 实现清水河畔的模拟登陆
- 手把手教你做视频播放器(二)-获取视频信息
- 第十三周-阅读程序