オーバーロード関数

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
beginner

オーバーロード関数

#1

投稿記事 by beginner » 14年前

Microsoft Visual C++2010 Expressを使っているのですが、sqrt関数を使おうとすると以下のようなエラーが発生してしまいます。
error C2668: 'sqrt' : オーバーロード関数の呼び出しを解決することができません。
どのようにすればよいですか。

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 14年前
住所: 北海道札幌市
連絡を取る:

Re: オーバーロード関数

#2

投稿記事 by Dixq (管理人) » 14年前

渡している型がおかしいのでしょう。
何の型を渡していますか?
また、エラーメッセージはググると大抵解決しますよ。
http://www.google.co.jp/search?hl=ja&so ... C%E7%B4%A2

beginner

Re: オーバーロード関数

#3

投稿記事 by beginner » 14年前

>>Dixq(管理人)さん
リンク先にとんでみたところ無事に解決できました。
ありがとうございます。

アバター
toyo
記事: 35
登録日時: 14年前
住所: 宮崎県

Re: オーバーロード関数

#4

投稿記事 by toyo » 14年前

C++ではオーバーロード関数といって同じ関数名でも引数の数や型が違う複数の関数が定義できます
質問のsqrt関数にもC++では3個の型が用意されています
double sqrt( double )
float sqrt( float)
long double sqrt( long double )
引数にこれら以外の型を渡すとコンパイラがどの関数を使えばいいのかわからないためエラーになります
C++でオーバーロード関数を使うときは引数の型に気をつけましょう

Cではdouble sqrt( double )しかないので引数は自動的にdoubleに変換されます
float sqrtf( float )という関数もあります

閉鎖

“C言語何でも質問掲示板” へ戻る