实验四 继承与派生

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验四继承与派生(4学时)

[实验目的]

1、学习定义和使用类的继承关系.定义派生类;

2、熟悉不同继承方式下对基类成员的访问控制;

3、学习利用虚基类解决二义性问题。

[实验内容与步骤]

1、编程,定义一个基类Animal,有私有整型成员变量age,构造其派生类Dog,在其成员

函数SetAge(int n)中直接给变量age赋值,观察会发生什么问题,将age改为公有成员变量,再观察执行情况。

2、定义一个基类BaseClass,含整型成员变量Number,构造其派生类DerivedClass,观察

构造函数和析构函数的执行情况。

3、编程,定义一个车(Vehicle)基类,具有MaxSpeed、Weight等成员变量,Run、Stop

等成员函数,由此派生出自行车(Bicycle)类、汽车(MotorCar)类。其中,自行车(bicycle)类有高度(Height)等属性,汽车类有座位数(SeatNum)等属性。从自行车类和汽车类派生出摩托车(Motorcycle)类。在继承过程中,注意把vehicle设置为虚基类。如果不把vehicle设置为虚基类,会有什么问题?

4、从实验一、5中的people(人员)类派生出student(学生)类,添加属性:班号ClassNO;people

类派生出teacher(教师)类,添加属性:职务principalship、部门Department。从student 类中派生出graduate(研究生)类,添加属性:专业subject、导师teacher adviser;从graduate 类和teacher类派生出TA(助教生)类,注意虚基类的使用。注意重载相应的成员函数,测试这些类。

[实验要求]

1、明确实验目的,理解和掌握课程教学中的有关基本概念,并加以灵活应用以解决实际问

题,提高分析问题和解决问题的能力。

2、根据[实验内容与步骤],做好实验前的预习,并按要求拟定解决问题的算法和编制程序。

3、写出实验报告,包括实验目的、实验内容中的题目、算法及程序清单、测试数据及运行

结果、调试分析和体会。

[习题与思考题]

1、定义一个基类BaseString,实现基本的输入字符串的功能。

2、定义一个类继承自BaseString,实现字符串的倒置功能。

3、定义一个类继承自BaseString,实现字符串的copy功能。

4、定义一个类继承自BaseString,实现字符串的compare功能。

5、为基类BaseString增加功能,并在继承的过程中声明为虚基类,体会虚基类在解决二义

性问题中的作用。

6、建立一个基类building,含有保护成员floors、rooms和square,分别用来表示一座楼

房的层数、房间数以及它的总面积数。建立类building的派生类house,含有私有成员bedrooms和balcony,分别用来表示卧室与阳台的数量。另外,建立类building的派生类office,含有私有成员phones和meeting_rooms,分别用来表示电话与会议室的数目。

这两个派生类都含有构造函数和show( ) 函数,用于对数据成员进行初始化和显示出这些数据。

7、已知有一个类figure:

class figure

public:double height;

double width;

};

要求再建立两个继承figure类的派生类square与isosceles_triangle,让每一个派生类都包含一个函数area( ),分别用来显示矩形与等腰三角形的面积。

8、编写一个用于记录及管理学生成绩的类Score,其含有三个私有数据成员Chi、Eng和

Mat,分别表示中文、英语和数学的成绩,定义两个重载构造函数对各科成绩进行初始化。类Score中含有三个成员函数InputScore( )、ComputeAvr( ) 和PrintScore( ),分别用于输入新的成绩、计算平均成绩及打印出各科成绩。再建立一个类Student,作为类Score的派生类,其中含有四个成员函数Name、Major、Number和AvrScore,分别表示学生的姓名、专业、学号和平均成绩;另外含有三个成员函数DefineData( )、PrintData( ) 和MakeAvr( ),分别用于输入各数据成员的值、打印各数据成员的值和计算平均成绩。

相关文档
最新文档