3、给出下面的基类: class area {
protected: double height; double width; public:
area(double h,double w) {
height=h; width=w; }
virtual double getarea()=0; };
【要求】
(1)建立基类area的俩个派生类rectangle与isosceles,让每一个派生类都包含一个函数getarea(),分别用来返回矩形与三角形的面积。用构造函数对height与width进行初始化。
(2)写出主程序,用来求height与width分别为10.0与5.0的矩形面积,以及求height与width分别为4.0与6.0的三角形面积。
(3)要求通过使用基类指针访问虚函数的方法(即运行时的多态性)分别求出矩形和三角形面积。
共29 页,第 26页
#include
area_cl(double r, double s) {height=r;width=s;} virtual double area()=0; };
class rectangle:public area_cl{ public:
rectangle(double r,double s):area_cl(r,s){}; double area()
{ return height*width/2;} };
class isosceles:public area_cl{ public:
isosceles(double r,double s):area_cl(r,s){}; double area() {
return height*width; } }; int main() {
rectangle rec(10.0,5.0); isosceles iso(4.0,6.0); area_cl *area1=&rec; area_cl *area2=&iso;
共29 页,第 27页
cout<<\三角形面积是\矩形面积是\
return 0; }
实验报告要求
每人针对每个实验上交一份实验报告,不接受不完整的实验报告,或者说明与程序或结果不符合的实验报告。
实验报告主要包括四方面内容: ⑴ 实验内容 实验题目与要求。 (2) 程序清单
实验实现的源程序,要求符合代码行首缩进、单句代码换行、标识符命名合理,并包括必要的注释。 (3)运行结果
原始数据,程序运行结果截图及说明。
(4) 实验总结
共29 页,第 28页
调试过程及调试中遇到的问题及解决办法;调试程序的收获心得与体会,分析不足之处。
共29 页,第 29页