言語による多重定義のサポートとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > 言語による多重定義のサポートの意味・解説 

言語による多重定義のサポート

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/12/09 03:43 UTC 版)

多重定義」の記事における「言語による多重定義のサポート」の解説

関数多重定義サポートしない言語では、たとえ関数の引数の型や数によらずアルゴリズムすなわち本質的な内容がまったく同じでも、引数の型や数ごとに関数それぞれ定義する場合は同じ名前が使えず引数応じた名前をそれぞれ付ける必要があり、呼び出すときも引数に応じて使い分ける必要があるC言語での例を以下に示す。 #include #include float vector2f_length(float x, float y) { return sqrtf(x * x + y * y); }double vector2d_length(double x, double y) { return sqrt(x * x + y * y); }float vector3f_length(float x, float y, float z) { return sqrtf(x * x + y * y + z * z); }double vector3d_length(double x, double y, float z) { return sqrt(x * x + y * y + z * z); }int main(void){ printf("%f\n", vector2f_length(1.0f, -1.0f)); printf("%f\n", vector2d_length(1.0, 2.0)); printf("%f\n", vector3f_length(1.0f, -1.0f, 1.0f)); printf("%f\n", vector3d_length(1.0, 2.0, -1.0));} ベクトル長さ計算する関数を、型および次元ごとに命名している。 一方関数多重定義サポートする言語では、関数シグネチャ異なれば同じ名前を使うことができる。関数には本質的な名前だけを付ければよく、呼び出すときも引数によらず一様に記述できる。 C++での例を以下に示す。 #include #include float vector_length(float x, float y) { return std::sqrt(x * x + y * y); }double vector_length(double x, double y) { return std::sqrt(x * x + y * y); }float vector_length(float x, float y, float z) { return std::sqrt(x * x + y * y + z * z); }double vector_length(double x, double y, float z) { return std::sqrt(x * x + y * y + z * z); }int main(void){ printf("%f\n", vector_length(1.0f, -1.0f)); // (float, float) バージョン呼ばれるprintf("%f\n", vector_length(1.0, 2.0)); // (double, double) バージョン呼ばれるprintf("%f\n", vector_length(1.0f, -1.0f, 1.0f)); // (float, float, float) バージョン呼ばれるprintf("%f\n", vector_length(1.0, 2.0, -1.0)); // (double, double, double) バージョン呼ばれる。} なお、C++11規格では、2次元ベクトル長さ求め標準関数として、多重定義されたstd::hypot()関数用意されている。C++17では3次元ベクトルバージョンも追加されている。

※この「言語による多重定義のサポート」の解説は、「多重定義」の解説の一部です。
「言語による多重定義のサポート」を含む「多重定義」の記事については、「多重定義」の概要を参照ください。

ウィキペディア小見出し辞書の「言語による多重定義のサポート」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「言語による多重定義のサポート」の関連用語

言語による多重定義のサポートのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



言語による多重定義のサポートのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの多重定義 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS