Salut, je n'ai trouvé aucun sujet dessus (ca m'affiche plus de 11 pages de résultats).
Je voulais savoir si on a le droit de faire, dans une fonction membre, 'delete this'.
par exemple
Je vais avoir deux fois la destruction de l'objet sans aucun problème, il n'y a aucune erreur. C'est comme si l'objet n'était pas détruit par human->erase().
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
18
19
20
21
22
23
24
25 #include <iostream> using namespace std; class A { public: //fonction qui contient delete this void erase(); }; void A::erase() { cout << "destruction par erase() d'un objet de type A" << endl; delete this; } int main() { A *human = new A(); human->erase(); delete human; cout << "Fin du programme sans problème" << endl; return 0; }
Doncne marche pas?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 delete this;
edit: j'aurais dû utiliser![]()
Partager