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メソッド | ユーザ定義クラスの優先順位の設定 | ![]() |