Есть ли способ определить статические переменные-члены в классах MATLAB?
Это не работает:
classdef A
properties ( Static )
m = 0;
end
end
Предлагается использовать ключевое слово "Constant" вместо "Static", свойства константы не могут быть изменены. Я хочу переменную, общую для всех объектов класса A
, и я хочу иметь возможность модифицировать эту переменную в методах класса A
.
Итак, мне нужна приватная переменная-член. Есть ли способ получить его в MATLAB?
Обнаружено, что обходной путь может быть выполнен с использованием постоянных переменных в статических функциях-членах.
В этом случае вы должны наследовать все свои классы из базового класса следующим образом.
classdef object < handle
properties ( GetAccess = 'public', SetAccess = 'private' )
id
end
methods ( Access = 'protected' )
function obj = object()
obj.id = object.increment();
end
end
methods ( Static, Access = 'private' )
function result = increment()
persistent stamp;
if isempty( stamp )
stamp = 0;
end
stamp = stamp + uint32(1);
result = stamp;
end
end
end