Existe-t-il un moyen de définir des variables membres statiques dans les classes MATLAB ?
Cela ne fonctionne pas :
classdef A
properties ( Static )
m = 0;
end
end
Il suggère d'utiliser le mot-clé "Constant" au lieu de "Static", les propriétés constantes ne pouvant être modifiées. Je veux une variable commune à tous les objets de la classe A
et je veux pouvoir modifier cette variable dans les méthodes de la classe A
.
J'ai donc besoin d'une variable membre statique privée. Existe-t-il un moyen de l'obtenir dans MATLAB ?
On a découvert qu'il est possible de contourner le problème. l'utilisation de variables persistantes dans les fonctions membres statiques.
Dans ce cas, vous devez faire hériter toutes vos classes d'une classe de base comme la suivante.
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