Access to class members
5 ビュー (過去 30 日間)
古いコメントを表示
kanuri venkata mohana
2020 年 8 月 6 日
コメント済み: kanuri venkata mohana
2020 年 8 月 14 日
Hi guys,
I am having some problem in accessing the class members of one class to another class. I have checked in matlab documentation but i didn#t understood it weel. Could anyone help me in understanding it.
classdef clcore
properties(GetAccess=?clMec)
cpc
csc
end
properties(Dependent, GetAccess=?clMec)
ws
end
methods(GetAccess=?clMec)
function ws=get.ws(obj)
ws=obj.cpc+obj.csc;
end
end
end
classdef clMec
properties
Mecmode
end
methods
%
end
end
and in command window
objcore=clcore(1,2)
I knew the way i have done is wrong but my context is this. Could anyone explain me how to use this getaccess.
thankyou.
7 件のコメント
Steven Lord
2020 年 8 月 11 日
Show us a small example that is complete that shows the problem. We should be able to execute the example using your exact reproduction steps. This will help us understand where you're having difficulty.
採用された回答
per isakson
2020 年 8 月 11 日
編集済み: per isakson
2020 年 8 月 11 日
The Code Analyzer is a useful feature. It indicates syntax errors in the rightmost column of the editor. And it provides tooltips. Properties has the attribute GetAccess, but methods only has Access. IMO: one should try to keep the little box green at all times.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/344344/image.png)
Your classes are value classes. Is that your intention? See Comparison of Handle and Value Classes
This is one way of "accessing the class members of one class to another class"
>> objcore=clcore(1,2)
objcore =
clcore with no properties. % <<< private properties are not shown
>> objMec = clMec
objMec =
clMec with properties:
Mecmode: []
>> objMec = objMec.access_value_of( objcore )
objMec =
clMec with properties:
Mecmode: 3
>>
where
classdef clMec
properties
Mecmode
end
methods
function obj = access_value_of( obj, friend )
obj.Mecmode = friend.ws;
end
end
end
and
classdef clcore
properties(GetAccess=?clMec)
cpc
csc
end
properties(Dependent, GetAccess=?clMec)
ws
end
methods
function obj = clcore( arg1, arg2 )
obj.cpc = arg1;
obj.csc = arg2;
end
function ws = get.ws(obj)
ws=obj.cpc+obj.csc;
end
end
end
3 件のコメント
per isakson
2020 年 8 月 13 日
編集済み: per isakson
2020 年 8 月 13 日
"a solution if there is a subclass for clMec for example clEEC" I'm not sure what kind of solution you are looking for.
Did you understand the code I provided in my answer? Do you think that this code is an answer to your original question? Exactly the same solution can be applied to "a subclass for clMec".
Please, try to elabotate a bit on what kind of solution you want.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Construct and Work with Object Arrays についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!