试定义一个描述太空中的水球的类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 21:05:14 浏览: 30
下面是CBall类的定义和主函数的实现,代码中有注释说明每个函数的作用。
```
#include <iostream>
#include <cmath>
using namespace std;
class CBall{
double r; //水球的半径
public:
CBall(){ //构造函数,水球的半径=0
r = 0;
}
CBall(int r){ //构造函数,水球的半径=r
this->r = r;
}
CBall(CBall &t){ //拷贝构造函数
r = t.r;
}
CBall Add(CBall &t){ //实现两个水球融合,返回融合后的水球
CBall b;
b.r = pow(pow(r, 3) + pow(t.r, 3), 1.0/3);
return b;
}
double 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;
}
```
相关问题
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 请在答题窗口录入编写的完整程序。
完整程序如下:
```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;
}
```
8 IntelliSense: 不允许使用抽象类类型 "Cball" 的对象: 纯虚拟 函数 "CObject::Update" 没有强制替代项 c:\Users\Administrator\Documents\Visual Studio 2013\Projects\ConsoleApplication1\ConsoleApplication1\main.cpp 50 8 ConsoleApplication1
这个错误是由于您在使用抽象类类型 "Cball" 的对象时,纯虚拟函数 "CObject::Update" 没有被强制替代导致的。抽象类是指包含至少一个纯虚拟函数的类,而纯虚拟函数是指在基类中声明但没有定义的函数。由于纯虚拟函数没有默认实现,因此只能通过在派生类中重写它来提供具体的实现。
要解决此错误,您需要在派生类 "Cball" 中重写纯虚拟函数 "CObject::Update" 并提供具体的实现。例如,您可以在 "Cball" 类中添加一个具有相同签名的函数,并在函数体内编写您希望执行的操作。这样,您就可以在使用 "Cball" 对象时避免出现该错误。
另外,请确保在创建 "Cball" 对象时,您使用的是派生类的实例而不是抽象类的实例。因为抽象类无法实例化,您只能使用派生类的实例来创建对象。
希望这能帮助您解决问题!如果需要进一步的帮助,请随时提问。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)