Microsoft Visual C++2010 Expressを使っているのですが、sqrt関数を使おうとすると以下のようなエラーが発生してしまいます。
error C2668: 'sqrt' : オーバーロード関数の呼び出しを解決することができません。
どのようにすればよいですか。
オーバーロード関数
- Dixq (管理人)
- 管理人
- 記事: 1662
- 登録日時: 14年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: オーバーロード関数
渡している型がおかしいのでしょう。
何の型を渡していますか?
また、エラーメッセージはググると大抵解決しますよ。
http://www.google.co.jp/search?hl=ja&so ... C%E7%B4%A2
何の型を渡していますか?
また、エラーメッセージはググると大抵解決しますよ。
http://www.google.co.jp/search?hl=ja&so ... C%E7%B4%A2
Re: オーバーロード関数
C++ではオーバーロード関数といって同じ関数名でも引数の数や型が違う複数の関数が定義できます
質問のsqrt関数にもC++では3個の型が用意されています
double sqrt( double )
float sqrt( float)
long double sqrt( long double )
引数にこれら以外の型を渡すとコンパイラがどの関数を使えばいいのかわからないためエラーになります
C++でオーバーロード関数を使うときは引数の型に気をつけましょう
Cではdouble sqrt( double )しかないので引数は自動的にdoubleに変換されます
float sqrtf( float )という関数もあります
質問のsqrt関数にもC++では3個の型が用意されています
double sqrt( double )
float sqrt( float)
long double sqrt( long double )
引数にこれら以外の型を渡すとコンパイラがどの関数を使えばいいのかわからないためエラーになります
C++でオーバーロード関数を使うときは引数の型に気をつけましょう
Cではdouble sqrt( double )しかないので引数は自動的にdoubleに変換されます
float sqrtf( float )という関数もあります