| Programming with MATLAB |
オブジェクトの優先順位
オブジェクトの優先順位は、ある状況の中で、種々のバージョンの演算子や関数 が存在するときに、どのバージョンを使うかを決めるものです。オブジェクトの 優先順位は、オブジェクトの種々のクラスを含む表現の挙動をコントロールする ものです。たとえば、つぎの表現を考えます。
objectA+objectB
通常、MATLABは、オブジェクトが同じ優先順位をもつと仮定し、最も左側に位置するものから呼び込みます。しかし、つぎのように二つの例外があります。
inferiortoやsuperiorto
を使って、他のユーザ定義のクラスと比べて優先順位を設定することができます。たとえば、"例題:Polynomクラス"の節の中で、polynomクラスは、多項式同志の加算が可能になるplusメソッドを定義します。polynomオブジェクトpを与えると、
p = polynom([1 0 -2 -5])
p =
x^3-2*x-5
1 + p
ans =
x^3-2*x-4
は、polynomのplus メソッドを呼びます(まず、doubleの1をpolynomオブジェクトに変換し、それを
pに加えます)。ユーザ定義のpolynomクラスは、MATLABのdoubleクラスよりも優先順位が上です。
| ポートフォリオsubsrefメソッド | ユーザ定義クラスの優先順位の設定 |