/*烟台大学计算机学院学生
*All right reserved.
*文件名称: 立体类族共有的抽象类
*作者:王雅萍
*完成日期:2014年5月28日
*版本号:v1.0
*对任务及求解方法的描述部分:立体类族共有的抽象类
*我的程序:*/
#include <iostream>
using namespace std;
class CSolid
{
public:
virtual double area() const=0;
virtual double volume() const=0;
};
class CCube:public CSolid
{
private:
double a;
public:
CCube(double a1):a(a1){}
virtual double area() const
{
return 6*a*a;
}
virtual double volume() const
{
return a*a*a;
}
};
class CBall:public CSolid
{
private:
double r;
public:
CBall(double r1)
{
r=r1;
}
virtual double area() const
{
return 4*3.14*r*r;
}
virtual double volume()const
{
return (4*3.14*r*r*r)/3;
}
};
class CCylinder:public CSolid
{
private:
double r;
double h;
public:
CCylinder(double r1,double h1)
{
r=r1;
h=h1;
}
virtual double area() const
{
return 2*3.14*r*r+2*3.14*r*h;
}
virtual double volume() const
{
return 3.14*r*r*h;
}
};
int main()
{
CCube a(2);
CBall b(1);
CCylinder c(1,1);
CSolid *p[3]={&a,&b,&c};
cout<<"正方体的体积和表面积"<<endl;
cout<<"表面积"<<p[0]->area()<<endl;
cout<<"体积"<<p[0]-> volume()<<endl;
cout<<"球体的体积和表面积"<<endl;
cout<<"表面积"<<p[1]->area()<<endl;
cout<<"体积"<<p[1]-> volume()<<endl;
cout<<"圆柱体的体积和表面积"<<endl;
cout<<"表面积"<<p[2]->area()<<endl;
cout<<"体积"<<p[2]-> volume()<<endl;
return 0;
}