2.编写一个程序计算出球、圆柱和圆锥的体积。 要求: ①定义一个基类圆,至少含有一个数据成员半径; ②定义基类的派生类球、圆柱、圆锥,都含有求体积的成员函数和输出函数。 ③定义主函数,求球、圆柱、圆锥的体积。
时间: 2023-12-23 08:04:04 浏览: 86
好的,我明白了您的问题。以下是符合您要求的程序:
```c++
#include <iostream>
using namespace std;
const double pi = 3.1415926;
class Circle {
protected:
double radius;
public:
Circle(double r = 0) : radius(r) {}
double getRadius() const { return radius; }
void setRadius(double r) { radius = r; }
};
class Sphere : public Circle {
public:
Sphere(double r = 0) : Circle(r) {}
double getVolume() const { return 4.0 / 3.0 * pi * radius * radius * radius; }
void print() const { cout << "Sphere, radius = " << radius << ", volume = " << getVolume() << endl; }
};
class Cylinder : public Circle {
protected:
double height;
public:
Cylinder(double r = 0, double h = 0) : Circle(r), height(h) {}
double getHeight() const { return height; }
void setHeight(double h) { height = h; }
double getVolume() const { return pi * radius * radius * height; }
void print() const { cout << "Cylinder, radius = " << radius << ", height = " << height << ", volume = " << getVolume() << endl; }
};
class Cone : public Cylinder {
public:
Cone(double r = 0, double h = 0) : Cylinder(r, h) {}
double getVolume() const { return 1.0 / 3.0 * pi * radius * radius * height; }
void print() const { cout << "Cone, radius = " << radius << ", height = " << height << ", volume = " << getVolume() << endl; }
};
int main() {
Sphere s(3);
Cylinder c(2, 5);
Cone k(4, 6);
s.print();
c.print();
k.print();
return 0;
}
```
在这个程序中,我们定义了一个基类 `Circle`,它含有一个数据成员 `radius`,以及一个派生类 `Sphere`,一个 `Cylinder` 和一个 `Cone`。每个派生类都继承了 `Circle`,并含有自己的求体积的成员函数和输出函数。
在主函数中,我们创建了一个球、一个圆柱和一个圆锥的实例,并调用它们的输出函数,输出它们的体积。
阅读全文