为什么计算不对const double PI = 3.14; class Round { public: int banjin; double zhouchang() { return 2 * PI* banjin; } }; int main() { Round c1; int banjing=10; cout << c1.zhouchang() << endl; }
时间: 2024-03-26 21:38:00 浏览: 28
在这段代码中,虽然定义了常量PI,但它并没有被使用。在成员函数zhouchang()中,使用的是一个未定义的PI变量,导致程序无法编译通过。为了解决这个问题,可以使用常量PI来计算圆的周长,如下所示:
```
const double PI = 3.14;
class Round {
public:
int banjin;
double zhouchang() {
return 2 * PI * banjin;
}
};
int main() {
Round c1;
c1.banjin = 10;
cout << c1.zhouchang() << endl;
return 0;
}
```
在这个修复后的代码中,我们在main函数中给圆的半径赋值,并且在成员函数zhouchang()中使用了常量PI来计算圆的周长,这样就可以正确地计算圆的周长了。
相关问题
#include <iostream> #include <cmath> using namespace std; const double pi = 3.14; class Circle{ private: int r; public: Circle(int a):r(a){} }; class Cylinder:public Circle{ private: int h; public: Cylinder(int a,int b):Circle(a){ h=b; } void gets(){ double S,V; S=2*pi*r*r+2*pi*r*h; V=pi*r*r*h; cout<<S<<" "<<V<<endl; } }; int main(){ int a,b; cin>>a>>b; Cylinder x1(a,b); x1.gets(); return 0; }
这段代码实现了计算圆柱的表面积和体积。其中,Circle类表示圆,Cylinder类继承自Circle类,表示圆柱。在Cylinder类中,使用了圆的半径r和圆柱的高h来计算表面积和体积,并将结果输出。在主函数中,通过输入半径和高来创建一个Cylinder对象,并调用gets()函数来计算并输出表面积和体积。
static const double PI = 3.1415926;这一句有什么问题,如何修改正确
这一句的问题在于将 const 和 static 的位置颠倒了,正确的写法应该是:
```
static constexpr double PI = 3.1415926;
```
或者
```
const static double PI = 3.1415926;
```
其中,第一种写法使用了 C++11 引入的新特性 constexpr,可以在编译期进行计算,提高程序的效率。第二种写法与第一种写法等价,只是将 static 放在 const 前面。
需要注意的是,PI 的值也可以通过使用数学库中的常量 M_PI 来获取,例如:
```
#include <cmath>
const double PI = std::acos(-1);
```
这样可以避免手动输入 PI 的值而出现精度问题。
相关推荐
![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)
![](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://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)