多重定義とは?

オーバーロード

別名:多重定義
【英】overload

オーバーロードとは、「引数戻り値異なるが名称が同一メソッド複数定義する」というオブジェクト指向プログラミングテクニックである。

オーバーロードでは、引数の型が異な同名メソッドをあらかじめ複数定義しておくことで、メソッド呼び出される時の引数戻り値の型などに応じて適切なメソッド呼び出すことができ、呼び出す際のチェックメソッド内部での不要条件分岐などを減らすことが可能になる。

このテクニック利用することでメソッド名の煩雑化や似て非なるメソッド名の大量記述を防ぐことができるが、同一名称ゆえに多用しすぎると機能理解し辛いメソッド生む危険性孕む

オーバーロードの本質は「引数戻り値個々振る舞い異なるが、振る舞い本質は同様」の場合メソッドコンストラクタに対して適用するべきであり、「引数の型が異なるだけで振る舞いは同様」の場合メソッドをオーバーロードしても混乱の元となりやすい。

プログラミングのほかの用語一覧
コーディング:  インクリメント演算子  インラインコード  オーバーフロー  オーバーロード  打ち切り誤差  配列  バグ

多重定義

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2018/12/27 10:58 UTC 版)

多重定義 (たじゅうていぎ) あるいは オーバーロード (: overload) とは、プログラミング言語において同一の名前(シンボル)を持つ関数あるいはメソッドおよび同一の演算子記号について複数定義し、利用時にプログラムの文脈に応じて選択することで複数の動作を行わせる仕組みである。 例えば整数型浮動小数点型複素数型の値について同じ「abs」という関数を定義して絶対値を求める、ごとに個々の意味で名前やIDを返す関数を定義するなどが挙げられる。多重定義する対象に応じてそれぞれ関数の多重定義[1]、演算子の多重定義[2]、メソッドの多重定義[3]と呼ばれる。メソッドの多重定義の特殊なケースとして、コンストラクタの多重定義がある。また、Common Lispなどでは、多重定義可能な関数としてgeneric function(en:Generic function)がある(このgenericはジェネリックプログラミングのジェネリックである)。


  1. ^ : function overloading
  2. ^ : operator overloading
  3. ^ : method overloding
  4. ^ : method overriding
  5. ^ : implicit type conversion
  6. ^ : type coercion
  7. ^ : inheritance
  8. ^ : inclusion
  9. ^ : generic type
  10. ^ : parametric type
  11. ^ : polymorphism
  12. ^ std::hypot - cppreference.com
  13. ^ a b http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4296.pdf
  14. ^ http://www.j3-fortran.org/doc/year/10/10-007.pdf
  15. ^ オーバーロード”. 言語リファレンス. The PHP Group. 2014年4月16日閲覧。


「多重定義」の続きの解説一覧



固有名詞の分類


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

辞書ショートカット

すべての辞書の索引

「多重定義」の関連用語

多重定義のお隣キーワード

   

英語⇒日本語
日本語⇒英語
   
検索ランキング



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

  
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2019 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリオーバーロードの記事を利用しております。
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの多重定義 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2019 Weblio RSS