(本人曾經找過關於對過載函式的呼叫不明確sqrt的解決方案,但遺憾的是,在不收費的前提下沒有找到具體的解決辦法,所以在本人僥倖解決後,在這裡將一種解決辦法分享給大家~本人剛接觸c++,問題理解難免有疏忽,還望各位指正~)
這是為了找出100~200間的全部素數 而寫的**,該**出自
譚浩強所編寫的《c++程式設計(第三版)》p78,例題3.14.
但是該**有一處錯誤,會導致系統出現:
「error c2668: 「sqrt」: 對過載函式的呼叫不明確
1> d:\visual2010\vc\include\math.h(589): 可能是「long double sqrt(long double)」
1> d:\visual2010\vc\include\math.h(541): 或 「float sqrt(float)」
1> d:\visual2010\vc\include\math.h(127): 或 「double sqrt(double)」
1> 嘗試匹配引數列表「(int)」時
1>
1>生成失敗。」
的提示,現在把**附下,並提供乙個解決方案:
#include
#include
#include
using
namespace std;
int main ()}
if(prime)
if(n%
10==0)
} cout
}
解決方法:
將k=int (sqrt(m))
;
改為k=int (sqrt((double)m))
;
即可以解決問題。
(只是順手寫寫玩玩……勿噴……)
ps:教材中初次關於過載函式的說明,在p101.
解決「sqrt」 對過載函式的呼叫不明確
也是自己平時總結出來,希望可以對小白有幫助。高手勿噴。假如原先是這樣的 if sqrt x0 tx x0 tx y0 ty y0 ty d vs2010 vc include math.h 581 可能是 long double sqrt long double 1 d vs2010 vc incl...
C 所遇 「pow」 對過載函式的呼叫不明確
error c2668 pow 對過載函式的呼叫不明確 vs2010中,數學函式的引數檢查更為嚴格,如pow 2,45 會引起乙個錯誤提示如下 error c2668 pow 對過載函式的呼叫不明確 d program filesmicrosoft visual studio 8vcincludem...
c 反射過載方法(發現不明確的匹配)
getmethod string name 在反射過載方法時,如果呼叫此過載方法,會產生 發現不明確的匹配 的錯誤。解決方案如下 getmethod methodname new type 其中type陣列中的項的個數是由要呼叫的方法的引數個數來決定的。如果無引數,則new type 使type陣列...