c++程序设计实验报告

void main() { vehicle bicycle(2,25); cout<<\ cout<<\ cout<<\ car audi(4,3500.0,5); cout<<\ cout<<\ cout<<\ truck jief(18,12500.0,2,33675.0);

cout<<\ cout<<\ cout<<\}

2.

#include #include #include

class person { protected: char name[20]; int birth_year; public: person(char *na, int year) { strcpy(name,na); birth_year=year; } int cal_age(int this_year) { return this_year-birth_year; } };

class graduate :virtual public person { protected: int grade;

char specialty[20]; public: graduate(char *na, int y, int g, char *spec):person(na,y) { grade=g; strcpy(specialty,spec); } void display(int this_year) { cout<<\ graduate age grade specialty\\n\ cout<

class teacher :virtual public person { protected: char title[15]; char specialty[20]; public: teacher(char *na, int y, char *ti, char *spec):person(na,y) { strcpy(title,ti); strcpy(specialty,spec); } void display(int this_year) { cout<<\ teacher age title specialty\\n\ cout<

class in_service_graduate:public teacher, public graduate { public: in_service_graduate(char *na, int y, char *ti, char *spec1, int g, char *spec2): teacher(na, y, ti, spec1), graduate(na, y, g, spec2),person(na,y) { } void display(int this_year) {

cout<<\ age title work_specialty grade study_specialty\\n\cout<

cout<

void main()

{ }

graduate gr(\teacher te(\

in_service_graduate sg(\gr.display(2002); cout<

sg.display(2002);

5.代码测试

1.

2.

6.测试过程和运行结果分析

1、

将class car: public vehicle和class truck: public vehicle分别改为:

class car: private vehicle和class truck: private vehicle

程序运行无法正常运行了,因为继承访问控制变成私有之后,基类的共有成员在派生类中就会变成私有的了,继承的函数在主函数中就不能访问了。 2、

两个基类的virtual都要添上,否则name等还是有二义性。不添virtual时不需要在初始化列表中添加person(na,y),但是只要添了一个virtual,就得加person(na,y)。???

7.思考题解答

将vehicle中数据成员wheels和weight改为private性质,如何修改程序以达到相同的输出结果。 答:将vehicle中数据成员wheels和weight改为private性质后, double truck::efficiency() { return payload/(payload+weight); }

中的weight就无法被访问了。可以定义一个指向weight的指针来访问。最简单的方法-----把weight换成get_weight()就万事大吉了。

实验报告九 多态性与虚函数

1.实验目的

(1) 掌握虚函数定义及实现。

(2) 掌握具有多态性的面向对象程序设计的基本方法。 (3) 掌握纯虚函数与抽象类的定义、实现及应用。

2.实验设备

硬件环境:微型计算机 软件环境:

联系客服:779662525#qq.com(#替换为@)