作业帮 > 综合 > 作业

4. 编写一个程序,利用抽象类计算正方形、球体和圆柱体的表面积和体积

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/06 05:51:53
4. 编写一个程序,利用抽象类计算正方形、球体和圆柱体的表面积和体积
分析:依题意,抽象出一个公共基类CContaineer为抽象类,在其中定义求表面积和体积的虚函数(该抽象类本身没有表面积和体积可言).抽象类中定义一个公共的数据成员radius,此数据可作为球体的半径、正方形的边长、圆柱体底面积圆半径.由此抽象类派生出要描述的三个类,在这三个类中都具有求表面积和体积的重定义版本.
源程序如下:
#include
class CCt //定义抽象类CContaineer
{protected:
float radius; //公共的数据成员radius
double area,volume; //表面积area,体积volume
public:
virtual void Area()=0; //求表面积的纯虚函数
virtual void Volume()=0; //求体积的纯虚函数
CCt (floata,double b,double c){radius=a;area=b;volume=c;} //基类的构造函数
};
class Square:public CCt //派生类Square
{
public:
Square(float a,double b,double c): CCt (a,b,c)
{}
void Area() //虚函数Area()
{area=6*radius*radius;
cout