【发布时间】:2012-10-05 15:10:12
【问题描述】:
如何分配给对象的超类?
例子:
classdef foo < bar
...
methods
function this = barSet(this,b)
% Here I want to arrange that bar(this) == b
end
end
end
我如何(或可以)实现barSet?
【问题讨论】:
标签: matlab matlab-class
如何分配给对象的超类?
例子:
classdef foo < bar
...
methods
function this = barSet(this,b)
% Here I want to arrange that bar(this) == b
end
end
end
我如何(或可以)实现barSet?
【问题讨论】:
标签: matlab matlab-class
当弄乱基类时,你应该使用@-syntax(阅读它here)。例如:
classdef foo < bar
...
methods
function this = barSet(this,b)
%# call method in bar
barSet@bar(this, b);
...
end
end
end
方法barSet 是foo 和bar 中的一个方法。
这是Matlab扩展重载方法的方式:如果你在foo中省略了barSet(this,b)的定义,调用
F = foo;
F.barSet(5);
将使用参数5 调用bar 类中的方法barSet。如果您定义它,该方法可以完全做其他事情,或者首先做bar 中的版本所做的事情,然后是更专业的东西(上面写为'...')。
现在这有帮助吗?因为我并不完全清楚你想要什么。我不明白你所说的bar(this) == b 是什么意思——b 是foo 或bar 的一个实例吗? bar(this) 是什么意思?复制构造函数?那么我是否正确理解您的意思是您想用b 实例覆盖this 实例?
【讨论】: