Hello everyone, i am new to the OOP in Matlab.
I have a superclass A
classdef A
properties
Property1
end
methods
function obj = A()
obj.Property1 = {};
end
function add(obj,inputArg)
obj.Property1{length(obj.Property1) + 1}=inputArg;
end
function str=output(obj)
str="";
for i=1:length(obj.Property1)
str=strcat(str," - ",string(obj.Property1{i}),newline);
end
end
end
end
and a subclass B
classdef B < A
methods
function obj = B()
obj.add('Start');
end
function outputArg = format(obj)
outputArg = strcat("List:",newline,obj.output());
end
end
end
Now I run the following test code:
x=B();
x.add('End');
fprintf(x.format());
The result is
List:
although I expected
List:
- Start
- End
. What have I done wrong?
Thanks a lot
Stephan

 채택된 답변

Steven Lord
Steven Lord 2020년 9월 21일

0 개 추천

As you've defined A and B they are value classes but you're using them like they are handle classes. See this documentation page and the "Object Modification" section on this other documentation page for more information.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Class Introspection and Metadata에 대해 자세히 알아보기

제품

릴리스

R2020a

질문:

2020년 9월 21일

댓글:

2020년 9월 21일

Community Treasure Hunt

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

Start Hunting!

Translated by