I have a class name VI_Lecroy.
function obj = VI_SDA6000(varargin)
obj = obj@VI_LeCroy(varargin{:});
end
What this @ does?

2 件のコメント

Luca Ferro
Luca Ferro 2023 年 4 月 19 日
i think it is a function handle but i might be mistaken
Walter Roberson
Walter Roberson 2023 年 4 月 19 日
@ in other contexts is used for function handles, but in the context of being in the middle of a pair of words, is a superclass reference.

サインインしてコメントする。

 採用された回答

chicken vector
chicken vector 2023 年 4 月 19 日
編集済み: chicken vector 2023 年 4 月 19 日

5 投票

In this case @ is used to call a superclass method from a subclass.
Consider the classes Food and Donut, such that Donut is a subclass of Food.
If Food has a method eat, you can call this method from the subclass Donut using the operator @:
%% Food class:
classdef Food
methods
% Constructor
function obj = Food(varargin)
...
end
function eatenFood = eat(varargin)
...
end
end
end
%% Donut class:
classdef Donut < Food
methods
% Constructor
function obj = Donut(varargin)
...
end
function eatenDonut = eat(varargin)
eatenDonut = eat@Food(varargin)
end
end
end
In particular, obj@Food calls the constructor method that is used to define class instances.
This is the method that has the same name of the class itself.
It follows that:
function obj = VI_SDA6000(varargin)
obj = obj@VI_LeCroy(varargin{:});
end
implies that the instances of the class VI_SDA6000 are constructed in the same way as done in VI_LeCroy.
You can find more detailes here.

1 件のコメント

Adam Danz
Adam Danz 2023 年 4 月 19 日
Another good reference to add to @chicken vector's answer:

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeMatrix Indexing についてさらに検索

質問済み:

2023 年 4 月 19 日

編集済み:

2023 年 4 月 20 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by