多重定義
(演算子オーバーロード から転送)
出典: フリー百科事典『ウィキペディア(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)』 (2017/03/05 01:46 UTC 版)
「XL (プログラミング言語)」の記事における「演算子オーバーロード」の解説
演算子は関数宣言のうちのwritten形式を使って定義することができる。以下に整数の足し算を定義するコードを示す。 function Add(X, Y: integer) return integer written X+Y writtenを使った定義には三つ以上の引数を取ることができる。例として線型変換の行列を示す。 function Linear(A, B, C : matrix) return matrix written A+B*C writtenは定数も扱える。これによってより特殊な演算子を定義できる。 function Equal(A, B : matrix) return boolean written A=Bfunction IsNull(A : matrix) return boolean written A=0function IsUnity(A : matrix) return boolean written A=1 基本的な演算子はすべてこのメカニズムで実装される。式はwrittenを用いた関数呼び出しに集約される。よってこのメカニズムは関数オーバーロードというよりも、式削減(expressin reduction)に近い。
※この「演算子オーバーロード」の解説は、「XL (プログラミング言語)」の解説の一部です。
「演算子オーバーロード」を含む「XL (プログラミング言語)」の記事については、「XL (プログラミング言語)」の概要を参照ください。
- 演算子オーバーロードのページへのリンク