C++的error C2668: 'pow' : ambiguous call to overloaded function错误原因及解决方法
生活随笔
收集整理的這篇文章主要介紹了
C++的error C2668: 'pow' : ambiguous call to overloaded function错误原因及解决方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、錯誤代碼
#include <iostream> #include <cmath>using namespace std;int main() {float a;a = pow(10, 2);cout<<"pow(10,2) = "<<a<<endl; cin.get();return 0; }報錯提示:
2、錯誤原因
正如錯誤提示一樣,說了pow()函數的3種形式:
long double pow(long double,int)
float pow(float,int)
double pow(double,int)
對于所給的參數int,int,編譯器無法判斷應該匹配哪個函數,因此報錯。
需要把第一個數字轉為浮點型。
3、正確代碼及輸出
#include <iostream> #include <cmath>using namespace std;int main() {float a;a = pow((float)10, 2); //第1個數為整數會報錯,需要轉為浮點型。cout<<"pow(10,2) = "<<a<<endl;cin.get();return 0; }正確輸出:
總結
以上是生活随笔為你收集整理的C++的error C2668: 'pow' : ambiguous call to overloaded function错误原因及解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 相机标定之4个坐标系之间的变换关系
- 下一篇: 【C++】cannot access p