bonjour,
j'essaie de développer une classe sous matlab qui s'alloue une ressource lors de l'appel de constructeur et qui doit libérer cette ressource lors de la destruction d'une instance.
J'ai essayé en implémentant la fonction delete(), mais la fonction ne s'exécute que lorsque je fais un delete(obj) explicitement, et pas quand je fais un clear.
Voici mes deux bouts de code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 % destest.m % le test à lancer function destest disp('----------------------------') do_test(true); do_test(false); % lors de cet appel la fonction delete n'est pas appelée end function do_test(callDelete) disp ('Debut test') monDestr = destr(); if callDelete delete(monDestr) end disp ('Fin test') end
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 % destr.m %petite classe avec un constructeur et un delete classdef destr methods function obj = destr(obj) disp '-->Creation' end function delete(obj) disp '-->Destruction' end end end
Partager