Bonjour,
je programme sous MATLAB en POO. J'ai créé un objet
les "properties" sousobj1 et sousobj2 sont des objets d'une classe héritant de la classe handle. POur ceux-ci, j'ai créé une fonction delete.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 classdef objet1 properties sousobj1 sousobj2 end
Ma question est:
Dois-je écrire une fonction delete pour la classe objet1?
J'ai lu la doc et j'ai l'impression que seuls les objets héritant de la classe "handle" nécessitent une fonction delete. Puis-je donc en déduire que la commande
appellera d'elle-même les fonctions delete des attributs sousobj1 et sousobj2 de l'objet myobjet1 de classe "objet1"?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2clear myobjet1
J'ai testé l'écriture d'une fonction delete ainsi:
Or, dans le "base" workspace de MATLAB, quand j'écris ensuite:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 methods ... function delete(obj) delete(sousobj1) delete(sousobj2) end end
les attributs sousobj1 et sousobj2 sont encore visibles et entiers.
Code : Sélectionner tout - Visualiser dans une fenêtre à part openvar myobjet1
J'en déduis que je dois simplement écrire:
,
Code : Sélectionner tout - Visualiser dans une fenêtre à part clear myobjet1
mais je crains qu'ainsi, les attributs héritant de la classe handle traînent quelque part dans la mémoire et l'encombrent au fur et à mesure que je crée et détruis des objets de type "objet1". Ma crainte est elle justifiée?
Merci d'avance pour votre aide.
Cordialement,
Oodbae
Partager