MATLAB Object-Oriented Programming

(Joyce) #1
data = 0;
str = '';
elseif nargin == 1
str = '';
end
obj = obj@double(data);
obj.DataString = str;
end

function sref = subsref(obj,s)
switch s(1).type
case '.'
switch s(1).subs
case 'DataString'
sref = obj.DataString;
case 'Data'
d = double(obj);
if length(s)<2
sref = d;
elseif length(s)>1 && strcmp(s(2).type,'()')
sref = subsref(d,s(2:end));
end
otherwise
error('Not a supported indexing expression')
end
case '()'
d = double(obj);
newd = subsref(d,s(1:end));
sref = ExtendDouble(newd,obj.DataString);
case '{}'
error('Not a supported indexing expression')
end
end

function obj = subsasgn(obj,s,b)
switch s(1).type
case '.'
switch s(1).subs
case 'DataString'
obj.DataString = b;
case 'Data'
if length(s)<2
obj = ExtendDouble(b,obj.DataString);
elseif length(s)>1 && strcmp(s(2).type,'()')

12 How to Build on Other Classes

Free download pdf