第十三周任务(三)

来源:互联网 发布:java list排序最快方法 编辑:程序博客网 时间:2024/06/05 10:23
#include "iostream"#include<string>using namespace std;class Shape{public :virtual double area() const=0;};class Circle:public Shape{public:double area() const;Circle (double r):R(r){}private:double R;};double Circle::area() const{return (3.14*R*R);}class Rectangle:public Shape{public:double area () const;Rectangle (double l,double w):L(l),W(w){} private:double L;double W;};double Rectangle::area() const{return (L*W);}class Triangle:public Shape{public:double area() const;Triangle (double d , double h ):D(d),H(h){}private:double D;double H;};double Triangle::area() const{return (0.5*D*H);}int main(){Circle c1(12.6),c2(4.9);    //建立Circle类对象c1,c2,参数为圆半径Rectangle r1(4.5,8.4),r2(5.0,2.5);       //建立Rectangle类对象r1,r2,参数为矩形长、宽Triangle t1(4.5,8.4),t2(3.4,2.8);    //建立Triangle类对象t1,t2,参数为三角形底边长与高Shape *pt[6]={&c1,&c2,&r1,&r2,&t1,&t2}; //定义基类指针数组pt,各元素指向一个派生类对象double areas=0.0;      //areas为总面积for(int i=0; i<6; i++){areas=areas+pt[i]->area();}cout<<"totol of all areas="<<areas<<endl;   //输出总面积system("pause");return 0;}

原创粉丝点击