实验6 类的继承与派生
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验5 类的继承与派生
一.实验目的
⒈掌握C++类的继承编程方法。
⒉掌握构造函数链的调用次序。
二.实验时间
2节课。
三.实验内容
定义一个基础类Shape,在此基础上派生出Rectangle和Circle,在Rectanlge 的基础上派生出RoundRectangle类。这些类都包括一个计算面积的getArea()函数。
提示:圆角矩形,就是在矩形类的基础上增加了圆角半径这个属性,由于四个圆角刚好可以构成一个圆,自己推算一下它的求面积公式。
要求:
(1)定义Shape,Rectangle,Circle,RoundRectangle类。(Shape类中包括color属性,类型为string;其他类中所需要的属性自己定义)
(2)在每个类中定义有参构造函数和无参构造函数,析构函数,用于访问属性的get/set函数和getArea函数
(3)编写测试程序观察构造函数、析构函数的调用过程。
(4)创建两组Shape,Rectangle,Circle,RoundRectangle对象(分别调用无参构造函数和有参构造函数创建),并显示每个对象的颜色和面积(用打印语句显示是什么颜色,面积是多少)。
实验前思考题:
1. 如何正确的画出Shape,Rectangle,Circle,RoundRectangle类的继承关系图(类图)?
2. 在定义类图的时候有什么原则需要遵循?
四.实验要求
1.结合上课内容,写出程序,并调试程序,要给出程序的测试数据和实验结果。
2.整理上机步骤,总结经验和体会。
3.完成和上交源程序。
课前思考题,类图如下:
Shape
-color
+getArea()
Circle -radius
+getArea()
Rectangle
-width
-height
+getArea()
RoundRectangle -roundRadius
+getArea()