关闭

第十三周,形状类族中的纯虚函数

75人阅读 评论(0) 收藏 举报


#include <iostream>

using namespace std;
class Shape
{
    public:
      virtual  double  areas()const;
};
class Circle:public Shape{
public:
    Circle(double r){R=r;}
    double  areas()const{return  R*R*3.141593; }
private:
    double R;
};
class Rectangle:public Shape{
public:
    Rectangle(double a,double b){A=a;B=b;}
    double  areas()const{return  A*B; }
private:
    double A,B;
};
class Triangle:public Shape{
public:
    Triangle(double x,double h){X=x;H=h;}
    double  areas()const{return  X*H*0.5; }
private:
    double X,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]->areas();
    }
    cout<<"totol of all areas="<<areas<<endl;   //输出总面积
    return 0;
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:13198次
    • 积分:630
    • 等级:
    • 排名:千里之外
    • 原创:51篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    最新评论