用C++编写1> Circle 圆类,有属性radius半径,计算面积的方法calcArea, 2>以 Circle 作为直接基类, 派生出Cylinder圆柱体类, 增加数据成员 height高, 计算表面积的方法calcArea和计算体积的方法calcVol。
时间: 2024-03-23 17:37:48 浏览: 153
好的,我可以帮助你回答这个问题。以下是代码实现:
```c++
#include<iostream>
using namespace std;
class Circle {
protected:
double radius;
public:
Circle(double r): radius(r) {}
double calcArea() {
return 3.14 * radius * radius;
}
};
class Cylinder: public Circle {
private:
double height;
public:
Cylinder(double r, double h): Circle(r), height(h) {}
double calcArea() {
return 2 * Circle::calcArea() + 2 * 3.14 * radius * height;
}
double calcVol() {
return Circle::calcArea() * height;
}
};
int main() {
Cylinder c(3, 5);
cout << "Cylinder surface area: " << c.calcArea() << endl;
cout << "Cylinder volume: " << c.calcVol() << endl;
return 0;
}
```
在这个代码中,我们首先定义了一个圆类 `Circle`,有一个属性 `radius` 和一个计算面积的方法 `calcArea`。然后,我们派生出一个圆柱体类 `Cylinder`,它继承自 `Circle`,并增加了一个数据成员 `height` 和两个方法 `calcArea` 和 `calcVol`,分别计算圆柱的表面积和体积。在 `calcArea` 方法中,我们调用了基类的 `calcArea` 方法,并加上了圆柱的侧面积,最后返回总的表面积。在 `calcVol` 方法中,我们只需要调用基类的 `calcArea` 方法,乘以高度即可得到体积。
在主函数中,我们创建了一个半径为 3、高度为 5 的圆柱体对象 `c`,并分别输出了它的表面积和体积。
阅读全文