Appeler manuellement des destructeurs : lorsque cela est nécessaire ou peu pratique
La sagesse conventionnelle suggère que l'invocation manuelle d'un destructeur est un défaut de conception. Cependant, il existe des exceptions où cette approche devient inévitable ou avantageuse.
Situations nécessitant une destruction manuelle
Des appels explicites au destructeur peuvent être nécessaires lorsque :
Exemples
Gestion personnalisée de la mémoire :
char buffer[sizeof(MyClass)]; { MyClass* p = new(buffer)MyClass; p->dosomething(); p->~MyClass(); }
Exigences spécifiques de conception :
Dans certains cas, des classes spécifiques peut être conçu pour gérer la gestion de la mémoire en interne, nécessitant une destruction manuelle.
Conclusion
Bien que les appels manuels au destructeur puissent être considérés comme une transgression de conception en termes stricts de POO, ils peuvent être stratégiquement utilisé dans les situations où la gestion de la mémoire est gérée séparément ou lorsqu'il est peu pratique ou impossible d'éviter leur utilisation. De tels cas doivent être isolés et traités de manière cohérente dans les parties désignées du code.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!