オーバーロード
【英】overload
オーバーロードとは、「引数や戻り値が異なるが名称が同一のメソッドを複数定義する」というオブジェクト指向プログラミングのテクニックである。
オーバーロードでは、引数の型が異なる同名のメソッドをあらかじめ複数定義しておくことで、メソッドが呼び出される時の引数や戻り値の型などに応じて適切なメソッドを呼び出すことができ、呼び出す際のチェックやメソッド内部での不要な条件分岐などを減らすことが可能になる。
このテクニックを利用することでメソッド名の煩雑化や似て非なるメソッド名の大量記述を防ぐことができるが、同一名称ゆえに多用しすぎると機能を理解し辛いメソッドを生む危険性を孕む。
オーバーロードの本質は「引数や戻り値、個々の振る舞いは異なるが、振る舞いの本質は同様」の場合のメソッドかコンストラクタに対して適用するべきであり、「引数の型が異なるだけで振る舞いは同様」の場合のメソッドをオーバーロードしても混乱の元となりやすい。
多重定義
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/02/21 13:38 UTC 版)
多重定義 (たじゅうていぎ) あるいは オーバーロード (英: overload) とは、プログラミング言語において同一の名前(シンボル)を持つ関数あるいはメソッドおよび同一の演算子記号について複数定義し、利用時にプログラムの文脈に応じて選択することで複数の動作を行わせる仕組みである。 例えば整数型や浮動小数点型、複素数型の値について同じ「abs」という関数を定義して絶対値を求める、型ごとに個々の意味で名前やIDを返す関数を定義するなどが挙げられる。多重定義する対象に応じてそれぞれ関数の多重定義[注釈 1]、演算子の多重定義[注釈 2]、メソッドの多重定義[注釈 3]と呼ばれる。メソッドの多重定義の特殊なケースとして、コンストラクタの多重定義がある。また、Common Lispなどでは、多重定義可能な関数としてgeneric function(en:Generic function)がある(このgenericはジェネリックプログラミングのジェネリックである)。
注釈
出典
- ^ std::hypot - cppreference.com
- ^ a b http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4296.pdf
- ^ http://www.j3-fortran.org/doc/year/10/10-007.pdf
- ^ “オーバーロード”. 言語リファレンス. The PHP Group. 2014年4月16日閲覧。
- 1 多重定義とは
- 2 多重定義の概要
- 3 演算子の多重定義
- 4 曖昧な型を持つ言語
多重定義
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/19 18:29 UTC 版)
「メソッド (計算機科学)」の記事における「多重定義」の解説
詳細は「多重定義」を参照 引数の数、型、順序などが異なる同じ名前のメソッドを定義することをメソッドの多重定義といい、多くのオブジェクト指向言語ではメソッドやコンストラクタを多重定義できる機能を持つ。オーバーロード (overload) とも呼ばれるが、オーバーライドとの混同に注意が必要である。 ただし、PHPやPerlのように、プログラミング言語によっては、型の曖昧さが原因によりメソッドを多重定義できないものもある。この場合はメソッドの引数をメソッド先頭で読み取り、引数の型を判定する条件分岐で対応する。
※この「多重定義」の解説は、「メソッド (計算機科学)」の解説の一部です。
「多重定義」を含む「メソッド (計算機科学)」の記事については、「メソッド (計算機科学)」の概要を参照ください。
固有名詞の分類
- 多重定義のページへのリンク