第十三周实验报告(1)
来源:互联网 发布:js中如何实现继承 编辑:程序博客网 时间:2024/05/21 03:18
/* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2012, 烟台大学计算机学院学生
* Copyright (c) 2012, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:
* 作 者: 李瑞
* 完成日期: 2012 年 5 月 12 日
* 版 本 号: v1.0
* 对任务及求解方法的描述部分
* 输入描述:……
* 问题描述:……
* 程序输出:……
* 程序头部的注释结束*/
* 程序的版权和版本声明部分
* Copyright (c) 2012, 烟台大学计算机学院学生
* Copyright (c) 2012, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:
* 作 者: 李瑞
* 完成日期: 2012 年 5 月 12 日
* 版 本 号: v1.0
* 对任务及求解方法的描述部分
* 输入描述:……
* 问题描述:……
* 程序输出:……
* 程序头部的注释结束*/
//(任务1.1)#include <iostream> using namespace std;class Vehicle {public: void run() const { cout << "run a vehicle. "<<endl; } //(2) run()为虚函数}; 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();system("pause");return 0;}
结果:
//(任务1.2)将Vehicle类的定义修改为虚函数,其余不变:#include <iostream> using namespace std;class Vehicle {public: virtual void run() const { cout << "run a vehicle. "<<endl; } //(2) run()为虚函数};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();system("pause");return 0;}
结果:
//(任务1.3)如果将Vehicle类的定义修改为纯虚函数,找出main()函数中将使编译出错的行删除(或改为注释),请写出程序的执行结果,并在上机时对照理解 :#include <iostream> using namespace std;class Vehicle {public: virtual void run() const = 0; //(3) run()为纯虚函数}; 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();system("pause");return 0;}
结果:
感言:
虚函数实现多态性,对于同一消息,不同对象有不同响应方式。
纯虚函数,没有函数体,只有函数名字而不具备函数的功能,不能被调用。
- 第十三周实验报告(1)
- 第十三周实验报告(1)
- 第十三周实验报告1
- 第十三周实验报告1
- 第十三周实验报告1
- 第十三周实验报告1
- 第十三周实验报告1
- 第十三周实验报告1
- 第十三周实验报告1
- 第十三周实验报告1
- 第十三周实验报告1
- 第十三周实验报告 任务二(1)
- 《第十三周实验报告任务1》
- 《C++第十三周实验报告1-3》
- 《C++第十三周实验报告2-1》---
- 第十三周实验报告任务1
- 第十三周实验报告(一)
- 第十三周实验报告(二)
- 环形缓冲区
- 第十二周实验报告2
- 著作权法规定的职务作品的著作权归属原则
- .NET使用swfupload实现图片批量上传
- 13周任务三:派生类
- 第十三周实验报告(1)
- DX打印XtraGrid
- 第十三周实验报告4
- Js操作Select大全
- x86系统引导(1)
- uboot 移到开发板主要命令
- Preview of BI 2012 with Speaker Dan Kearnan: Expect SAP NetWeaver BW to Run Soon on SAP HANA
- 这才叫视网膜显示:无线光伏视网膜移植有重大突破
- 10300 Ecological Premium