第14周项目4-立体类族共有的抽象类

来源:互联网 发布:软件研发经理 编辑:程序博客网 时间:2024/05/16 09:01
/**Corpyright (c)2013,烟台大学计算机学院*All right reseved.*作者:张凯*完成日期:2014年5月28日*版本号:v1.0*输入描述:*问题描述:*程序输出:*问题分析:*算法设计:*/#include<iostream>#include<cstring>using namespace std;class CSolid{    public:     virtual double area()=0;     virtual double volume()=0;};class CCube:public CSolid{    public:    CCube(double a):length(a){}    ~CCube(){}    double area()    {        return 6*length*length;    }    double volume()    {        return length*length*length;    }    private:     double length;};class CBall:public CSolid{    public:    CBall(double r):rad(r){}    ~CBall(){}    double area()    {        return 4*3.14*rad*rad;    }    double volume()    {        return 4/3*3.14*rad*rad*rad;    }    private:     double rad;};class CCylinder:public CSolid{    public:    CCylinder(double r,double h):rad(r),heigth(h){}    ~CCylinder(){}    double area()    {        return (2*3.14*rad*rad+2*3.14*rad*heigth);    }    double volume()    {        return 3.14*rad*rad*heigth;    }    private:     double rad;     double heigth;};int main(){    //定义基类指针数组p,使它每一个元素指向一个派生类对象    CCube m1(4);    CBall m2(3);    CCylinder m3(2.6,6.4);    CSolid *p[3]={&m1,&m2,&m3};    cout<<"正方体的面积:"<<p[0]->area()<<";"<<"体积:"<<p[0]->volume()<<endl;    cout<<"球体的面积:"<<p[1]->area()<<";"<<"体积:"<<p[1]->volume()<<endl;    cout<<"圆柱体的面积:"<<p[2]->area()<<";"<<"体积:"<<p[2]->volume()<<endl;    return 0;}

0 0
原创粉丝点击