您的位置:首页 > 其它

6.14给出抽象基类建立派生类计算正方体,球体,圆柱体的表面积及体积

2015-06-29 21:34 459 查看
#include<iostream>

using namespace std;

class container{

protected:

double radius;

public:

container(double r)

{radius=r;

}

virtual double surface_area()=0;

virtual double volume()=0;

};

class cube:public container{

public:

cube(double r):container(r)

{ };

double surface_area()

{cout<<"这个正方体的表面积为:"<<6*radius*radius<<endl;

}

double volume()

{cout<<"这个正方体的体积为:"<<radius*radius*radius<<endl;

}

};

class sphere:public container{

public:

sphere(double r):container(r){

};

double surface_area()

{cout<<"这个球体的表面积为:"<<4*3.14*radius*radius<<endl;

}

double volume()

{cout<<"这个球的体积为:"<<4/3*3.14*radius*radius*radius<<endl;

}

};

class cyclinder:public container{

public:

cyclinder(double r,double h):container(r){

high=h;

}

double surface_area()

{cout<<"这个圆柱体的表面积为:"<<2*3.14*radius*radius+3.14*radius*high<<endl;

}

double volume()

{cout<<"这个圆柱体的体积为:"<<3.14*radius*radius*high<<endl;

}

protected:

double high;

};

int main()

{

container *p;

cube obj1(6.0);

sphere obj2(5.0);

cyclinder obj3(6.0,5.0);

p=&obj1;

p->surface_area();

p->volume();

p=&obj2;

p->surface_area();

p->volume();

p=&obj3;

p->surface_area();

p->volume();

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: