第十三周实验报告1
来源:互联网 发布:手感好中性笔 知乎 编辑:程序博客网 时间:2024/06/06 06:56
实验1.1目的:
阅读程序,写出执行结果并上机检验。
实验代码:
#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 << "(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;}
运行结果:
(a) 直接用对象访问成员函数:run a vehicle.run a car.run a airplane.(b) 用指向基类的指针访问成员函数:run a vehicle.run a vehicle.Press any key to continue
实验1.2目的:
将Vehicle类的定义修改为虚函数,其余不变,请写出程序的执行结果,并在上机时对照理解
实验代码:
#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();system("pause");return 0;}
运行结果:
(a) 直接用对象访问成员函数:run a vehicle.run a car.run a airplane.(b) 用指向基类的指针访问成员函数:run a car.run a airplane.Press any key to continue
实验1.3目的:
如果将Vehicle类的定义修改为纯虚函数,找出main()函数中将使编译出错的行删除(或改为注释),请写出程序的执行结果,并在上机时对照理解
实验代码:
#include <iostream>using namespace std;class Vehicle{public:virtual void run() const = 0; };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;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;}
实验结果:
(a) 直接用对象访问成员函数:run a car.run a airplane.(b) 用指向基类的指针访问成员函数:run a car.run a airplane.Press any key to continue
实验心得:
从实验1.1到实验1.2最后到实验1.3,老师真的是良苦用心啊,从实验1.1指向基类的指针无法访问到派生类的数据一步一步让我们体会虚函数的作用:虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类的指针或引用来访问基类和派生类中的同名函数,最后到纯虚函数,为派生类保留一个函数的名字,以便派生类根据需要对它进行定义。
- 第十三周实验报告1
- 第十三周实验报告1
- 第十三周实验报告1
- 第十三周实验报告1
- 第十三周实验报告1
- 第十三周实验报告1
- 第十三周实验报告1
- 第十三周实验报告1
- 第十三周实验报告1
- 《第十三周实验报告任务1》
- 第十三周实验报告(1)
- 《C++第十三周实验报告1-3》
- 《C++第十三周实验报告2-1》---
- 第十三周实验报告任务1
- 第十三周实验报告(1)
- 第十三周实验报告3
- 第十三周实验报告一
- 第十三周实验报告2
- CONST
- 关于Struts 2对Date类型的自动类型转换出错的问题
- java.lang.OutOfMemoryError: Java heap space内在溢出
- 论IT从业人员知识的学习方法以及学习技巧(摘抄)
- StoredProcedure “存储过程名” 的TextHeader 中存在语法错误
- 第十三周实验报告1
- ibatis error .
- javascript opener 用法
- 【转】程序员10大境界【走在路上,潜心修行】
- JavaScript面向对象15分钟教程
- 不同版本的linux下环境变量的设置
- 显示桌面图标不见了
- Android深入浅出之Audio第三部分Audio Policy[1]
- nginx通过unix:/socket与fastcgi连接,提升性能