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



#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;
}

阅读更多
上一篇个人银行系统管理
下一篇立体类族共有的抽象类
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭