第十三周任务一

来源:互联网 发布:centos php一键安装包 编辑:程序博客网 时间:2024/04/30 03:53

任务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.1结果

(a) 直接用对象访问成员函数:

run a vehicle.

run a car.

run a airplane.

(b) 用指向基类的指针访问成员函数:

run a vehicle.

run a vehicle.

 

(任务1.2)如果将Vehicle类的定义修改为虚函数,其余不变,请写出程序的执行结果,并在上机时对照理解

class Vehicle {public: virtual void run() const { cout << "run a vehicle. "<<endl; } //(2) run()为虚函数};


 

任务1.2结果

(a) 直接用对象访问成员函数:

run a vehicle.

run a car.

run a airplane.

(b) 用指向基类的指针访问成员函数:

run a car.

run a airplane

(任务1.3)如果将Vehicle类的定义修改为纯虚函数,找出main()函数中将使编译出错的行删除(或改为注释),请写出程序的执行结果,并在上机时对照理解

class Vehicle {public: virtual void run() const = 0; //(3) run()为纯虚函数};


 

任务1.3结果

(a) 直接用对象访问成员函数:

run a car.

run a airplane.

(b) 用指向基类的指针访问成员函数:

run a car.

run a airplane.

(任务1.4)提交博文,记录实验过程和结果,用自己的话概括你对虚函数、多态性和抽象类的理解。

虚函数作用是允许在派生类中重新定义与基类名相同的函数,并以基类指针或指针访问同名函数。

多态性:可以将不同类中功能不同的函数定义成相同函数名来调用。

抽象类:作为其他类的基类,没有实权,所以没有“对象”。只有不能被调用的虚函数。

 

原创粉丝点击