许多函数和运算符都有两个或多个参数,当用不同类的对象调用这些函数时,可能会出现这种情况。因此,当有混合对象给定给函数或运算符时,有必要确定从哪个类调用哪个方法的优先级。为此高于
和低于
可以使用的函数
(class_name, …)
¶从类构造函数调用时,将当前构造的对象符号为优先级高于类名称.
在一个调用中可以指定多个这样的类。此函数可能只有从类构造函数调用。
详见: 低于.
(class_name, …)
¶从类构造函数调用时,将当前构造的对象符号为优先级低于类名称.
在一个调用中可以指定多个这样的类。此函数可能只有从类构造函数调用。
详见: 高于.
对于多项式类,考虑以下情况
2*多项式([1,0,1]);
混合了类的对象double
具有类的对象多项式
。在这种情况下,返回类型应为多项式
所以高于
函数用于类构造函数中。特别是多项式类构造函数将被修改为
##-*-texinfo-*-##@deftypefn{}{}多项式()##@deftypefnx{}{}多项式(@var{a}@end deftypefn函数p=多项式(a),如果(nargin==0)p.poly=[0];p=类(p,“多项式”);否则如果(strcmp(类(a),“多项式”)p=a;elseif(isreal(a)&&isvector(a))p.poly=a(:).';#力行向量p=类(p,“多项式”);else错误(“@多项式:A必须是实向量”);endif-endif-superiorto(“双”);结束函数
请注意,用户类总是具有比内置Octave类型更高的优先级。因此,将多项式类符号为高于double
类实际上并不是必需的。
当遇到两个优先级相等的对象时,Octave将使用参数列表中第一个出现的对象的方法。
版权所有 © 2024 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号