计一个圆柱体类,该类有通过参数初始化对象或通过一个已知对象初始化一个新对象,以及有求圆柱体体积和表面积的功能。
时间: 2024-03-14 09:43:46 浏览: 63
好的,你的问题是如何定义一个圆柱体类,包含初始化对象的构造函数、复制构造函数、求体积的函数和求表面积的函数。我可以为你提供以下代码,你可以参考:
```c++
#include <iostream>
using namespace std;
const double PI = 3.14159; // 圆周率
class Cylinder {
private:
double radius; // 圆柱体底面半径
double height; // 圆柱体高
public:
Cylinder(double r = 0, double h = 0) : radius(r), height(h) {} // 构造函数
Cylinder(const Cylinder& c) { radius = c.radius; height = c.height; } // 复制构造函数
double getVolume() const { return PI * radius * radius * height; } // 求圆柱体体积
double getSurfaceArea() const { return 2 * PI * radius * (radius + height); } // 求圆柱体表面积
};
int main() {
Cylinder c1(3, 5); // 通过参数初始化对象
Cylinder c2(c1); // 通过一个已知对象初始化一个新对象
cout << "圆柱体1的体积为:" << c1.getVolume() << endl; // 输出:圆柱体1的体积为:141.372
cout << "圆柱体1的表面积为:" << c1.getSurfaceArea() << endl; // 输出:圆柱体1的表面积为:150.796
cout << "圆柱体2的体积为:" << c2.getVolume() << endl; // 输出:圆柱体2的体积为:141.372
cout << "圆柱体2的表面积为:" << c2.getSurfaceArea() << endl; // 输出:圆柱体2的表面积为:150.796
return 0;
}
```
在上面的代码中,我们定义了一个Cylinder类,有两个私有数据成员,分别是圆柱体底面半径和圆柱体高。我们提供了两个构造函数,一个是通过参数初始化对象,另一个是通过一个已知对象初始化一个新对象,即复制构造函数。同时,我们提供了求圆柱体体积和表面积的两个公有成员函数。
在main函数中,我们创建了两个圆柱体对象c1和c2,分别通过参数初始化和复制构造函数初始化。然后,我们分别调用了getVolume()和getSurfaceArea()函数,输出了圆柱体1和圆柱体2的体积和表面积。
阅读全文