来自李振报的问题
4.编写一个程序,利用抽象类计算正方形、球体和圆柱体的表面积和体积
4.编写一个程序,利用抽象类计算正方形、球体和圆柱体的表面积和体积
1回答
2020-04-10 00:01
4.编写一个程序,利用抽象类计算正方形、球体和圆柱体的表面积和体积
4.编写一个程序,利用抽象类计算正方形、球体和圆柱体的表面积和体积
分析:依题意,抽象出一个公共基类CContaineer为抽象类,在其中定义求表面积和体积的虚函数(该抽象类本身没有表面积和体积可言).抽象类中定义一个公共的数据成员radius,此数据可作为球体的半径、正方形的边长、圆柱体底面积圆半径.由此抽象类派生出要描述的三个类,在这三个类中都具有求表面积和体积的重定义版本.
源程序如下:
#include
classCCt//定义抽象类CContaineer
{protected:
floatradius;//公共的数据成员radius
doublearea,volume;//表面积area,体积volume
public:
virtualvoidArea()=0;//求表面积的纯虚函数
virtualvoidVolume()=0;//求体积的纯虚函数
CCt(floata,doubleb,doublec){radius=a;area=b;volume=c;}//基类的构造函数
};
classSquare:publicCCt//派生类Square
{
public:
Square(floata,doubleb,doublec):CCt(a,b,c)
{}
voidArea()//虚函数Area()
{area=6*radius*radius;
cout