用C++写一个利用类的复合定义圆柱类Column的程序
时间: 2023-11-25 17:08:35 浏览: 32
以下是一个利用类的复合定义圆柱类Column的C++程序:
```cpp
#include <iostream>
using namespace std;
class Circle {
private:
double radius;
public:
Circle(double r) {
radius = r;
}
double area() {
return 3.14 * radius * radius;
}
};
class Column {
private:
Circle base;
double height;
public:
Column(double r, double h) : base(r), height(h) {}
double volume() {
return base.area() * height;
}
};
int main() {
double radius, height;
cout << "Enter the radius of the base circle: ";
cin >> radius;
cout << "Enter the height of the column: ";
cin >> height;
Column col(radius, height);
cout << "The volume of the column is: " << col.volume() << endl;
return 0;
}
```
在这个程序中,我们首先定义了一个圆类Circle,它包含一个私有数据成员radius和一个公有成员函数area(),计算圆的面积。然后我们定义了一个圆柱类Column,它包含一个私有数据成员base和一个私有数据成员height,其中base是一个圆类的对象,表示圆柱的底部圆形。构造函数使用初始化列表来初始化base圆类对象和height数据成员。公有成员函数volume()计算圆柱的体积,它调用base圆类对象的area()函数来计算底部圆的面积。
在主函数中,我们首先从用户输入中读取圆柱底部圆的半径和圆柱的高度,然后创建一个Column类对象col,并调用它的volume()函数来计算圆柱的体积,并将结果输出到屏幕上。