Como obter variáveis de membro estáticas nas classes MATLA
xiste uma maneira de definir variáveis de membro estáticas nas classes MATLA
Isso não funciona:
classdef A
properties ( Static )
m = 0;
end
end
Sugere usar a palavra-chave "Constant" em vez de "Static", as propriedades constantes não podem ser modificadas. Eu quero uma variável comum a todos os objetos da classeA
e quero poder modificar essa variável nos métodos da classeA
.
Então, o que eu preciso é de uma variável de membro estática privada. Existe uma maneira de obtê-lo no MATLAB?
Descoberto que uma solução alternativa pode ser executadasando variáveis persistentes em funções membro estática
Nesse caso, você deve herdar todas as suas classes de uma classe base como a seguint
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