
代码如下
#include <iostream>
using namespace std;
const float PI = 3.1415;
class container
{
protected:
double radius;
public:
container(double radius1){radius = radius1;};
virtual double surface_area() = 0;
virtual double volume()=0;
};
class cube :public container
{
public:
cube(double r):container(r){}
double surface_area()
{
return 6 * radius * radius;
}
double volume()
{
return radius * radius * radius;
}
};
class sphere :public container
{
public:
sphere(double r):container(r){}
double surface_area()
{
return 4* PI * radius * radius;
}
double volume()
{
return 4*PI*radius * radius * radius/3;
}
};
class cylinder :public container
{
private:
double height;
public:
cylinder(double r,double h):container(r){height = h;}
double surface_area()
{
return 2* PI * radius * (radius+height);
}
double volume()
{
return PI*radius * radius * height;
}
};
int main()
{
cube cu(6.0);
sphere sp(5.0);
cylinder cy(6.0,5.0);
cout << "边长为6.0的正方体的表面积 = " << cu.surface_area() << ",体积 = " << cu.volume() << endl;
cout << "半径为5.0的球体的表面积 = " << sp.surface_area() << ",体积 = " << sp.volume() << endl;
cout << "半径为5.0和高为6.0的圆柱体的表面积 = " << cy.surface_area() << ",体积 = " << cy.volume() << endl;
return 0;
}