オブジェクトのスーパークラスに割り当てるにはどうすればよいでしょうか?
例:
classdef foo < bar
...
methods
function this = barSet(this,b)
% Here I want to arrange that bar(this) == b
end
end
end
どのように(または)実装できbarSet
ますか?
オブジェクトのスーパークラスに割り当てるにはどうすればよいでしょうか?
例:
classdef foo < bar
...
methods
function this = barSet(this,b)
% Here I want to arrange that bar(this) == b
end
end
end
どのように(または)実装できbarSet
ますか?
基本クラスをいじる場合は、 @
-syntax を使用する必要があります (詳細については、こちらを参照してください)。例えば:
classdef foo < bar
...
methods
function this = barSet(this,b)
%# call method in bar
barSet@bar(this, b);
...
end
end
end
メソッドは と の両方のメソッドbarSet
です。foo
bar
これは、オーバーロードされたメソッドを拡張する Matlab の方法です: でbarSet(this,b)
定義を省略するとfoo
、
F = foo;
F.barSet(5);
引数barSet
でクラスのメソッドを呼び出します。それを定義すると、メソッドはまったく別のことを行うことができます。または、最初に のバージョンが行うことを行い、その後により特殊化された処理 (上で として記述) を実行できます。bar
5
bar
'...'
今、これはまったく役に立ちますか?あなたが何を望んでいるのか、私には完全には明らかではないからです。あなたが何を意味するのか理解できませんbar(this) == b
--またはb
のインスタンスですか? とはどういう意味ですか? コピーコンストラクタ?つまり、インスタンスをインスタンスで上書きしたいということを正しく理解していますか?foo
bar
bar(this)
this
b