Есть ли способ определить статические переменные-члены в классах MATLAB?
Это не работает:
classdef A
properties ( Static )
m = 0;
end
end
Предлагается использовать ключевое слово «Константа» вместо «Статический», свойства константы не могут быть изменены. Мне нужна переменная, общая для всех объектов класса 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
persistent
не будет выделяться отдельно для подклассов - person Eric   schedule 14.03.2017