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