complex c1(2,3),c2(3,4),c3(3,4); cout<<\ cout< cout<<\ cout< 测试结果: 3.利用虚函数实现的多态性来求四种几何图形的面积之和。这四种几何图形是:三角形、矩形、正方形和圆。几何图形的类型可以通过构造函数或通过成员函数来设置。 ⑴分析 计算这四种几何图的面积公式分别是: 三角形的边长为W,高为H时,则三角形的面积为W* H/2;矩形的边长为W,宽为H时,则其面积为W* H;正方形的边长为S,则正方形的面积为S*S;圆的半径为R,其面积为 3.1415926 *R *R。 为设置几何图形的数据并求出几何图形的面积,需要定义一个包含两个虚函数的类: class Shape {public: virtual float Area( void) =0; //求面积 virtual void Setdata(float ,float =0) =0; //设置图形数据 }; 因面积的计算依赖于几何图形,故在类中只能定义一个纯虚函数Area。同理,设置几何图形数据的函数Setdata也只能定义为纯虚函数。 把这个基类派生出其它几何图形类。如派生出的三角形类为: class Triangle:public Shape { float W,H; //三角形边长为W,高为H public: Triangle(float w=0,float h=0){ W=w; H = h; } float Area( void){ return W*H/2; } void Setdata(float w,float h=0){ W=w; H = h; } }; 参考程序: #include class Shape { public: virtual float Area( void) =0; //纯虚函数,求面积 virtual void show(void) =0; //纯虚函数,显示数据 }; class Triangle:public Shape { float W,H; //三角形边长为W,高为H public: Triangle(float w=0,float h=0){ W=w; H = h; } float Area( void){ return W*H/2; } void show() { cout<<\三角形:\边长:\ 高:\ 三角形面积:\ } }; class Rectangle:public Shape { float W,H; public: Rectangle(float w=0,float h=0):W(w),H(h){} float Area(void){ return W*H; } void show() { cout<<\矩形:\ 长:\ 宽:\ <<\ 矩形面积面积:\} }; class Square:public Shape { float W; public: Square(float w=0):W(w){} float Area(void){ return W*W; } void show() { cout<<\正方形:\ 边长:\ 正方形面积:\} }; class Circle:public Shape { float radius; public: Circle(float r):radius(r){} float Area(void){ return PI*radius*radius/2; } void show() { cout<<\圆:\ 半径:\ 圆面积:\} }; void main() { Shape *S; //抽象类,只能定义指针,不能定义对象 Triangle T(4,6); //设置三角形 Rectangle R(3,4); //设置长方形 Square Sq(6); //设置正方形 Circle C(3); //设置圆 S=&T; S->show(); S=&R; S->show(); S=&Sq; S->show(); S=&C; S->show(); } 测试结果:
c++运算符重载和多态性实验报告(2)
2018-11-19 22:45
c++运算符重载和多态性实验报告(2).doc
将本文的Word文档下载到电脑
下载失败或者文档不完整,请联系客服人员解决!