2.试定义一个描述太空中的水球的类CBall,声明如下: class CBall { double r; //水球的半径 public: CBall(); //构造函数,水球的半径=0 CBall(int r); //构造函数,水球的半径=r CBall(CBall &t); //拷贝构造函数 CBall Add(CBall &t); //实现两个水球融合,返回融合后的水球 double GetR(); //返回水球半径 }; 已知球体积公式如下图所示,设Π=3.14,在如下主函数中对该类进行测试。 int main() { CBall b0, b1(5),b2; double r; cin >> r; b0 = CBall(r); b2=b1.Add(b0); printf("%.2f",b2.GetR()); return 0; } 输入输出示意如下: 5 6.30 请在答题窗口录入编写的完整程序。
时间: 2024-01-25 20:02:01 浏览: 173
完整程序如下:
```cpp
#include <iostream>
using namespace std;
class CBall {
double r; // 水球的半径
public:
CBall(); // 构造函数,水球的半径=0
CBall(int r); // 构造函数,水球的半径=r
CBall(CBall& t); // 拷贝构造函数
CBall Add(CBall& t); // 实现两个水球融合,返回融合后的水球
double GetR(); // 返回水球半径
};
CBall::CBall() {
r = 0;
}
CBall::CBall(int r) {
this->r = r;
}
CBall::CBall(CBall& t) {
r = t.r;
}
CBall CBall::Add(CBall& t) {
double V1, V2, V;
V1 = 4.0 / 3 * 3.14 * r * r * r;
V2 = 4.0 / 3 * 3.14 * t.r * t.r * t.r;
V = V1 + V2;
double r3 = V / (4.0 / 3 * 3.14);
CBall b(r3);
return b;
}
double CBall::GetR() {
return r;
}
int main() {
CBall b0, b1(5), b2;
double r;
cin >> r;
b0 = CBall(r);
b2 = b1.Add(b0);
printf("%.2f", b2.GetR());
return 0;
}
```
阅读全文