En C++, quand on crée un objet en appelant un constructeur et sans faire appel à l'allocation dynamique de mémoire, le compilateur réserve d'ors et déjà une partie de la mémoire avant l'exécution.
On sait également que si on crée un objet avec une allocation dynamique par new par exemple, on a intérêt à le supprimer par delete.
Voila quelques dires que j'aimerais que vous critiquiez :
1- un objet créé de façon statique (sans faire appel à l'allocation dynamique de mémoire) est détruit automatiquement selon sa portée. Ne serait il pas intéressant de le détruire avant la fin de sa portée si on en a plus besoin?
2- Lors de l'allocation dynamique de la mémoire, on crée l'objet avec new par exemple. Quand on veut détruire cet objet, on fait appel au destructeur.
Si l'objet a des attributs qui pointent vers d'autres objets , on est obligé de déclarer un destructeur différent de celui appelé par défaut, dans le but de supprimer également les objets pointés.
3- si l'objet ne cache pas de pointeurs à travers ses attributs, alors on a le choix entre le créer en appelant le constructeur par défaut ou par new pour une allocation dynamique.
4- Quand l'objet cache des pointeurs vers d'autres objets , on est obligé de le créer avec new pour appeler le destructeur (non par défaut) permettant encore une fois de supprimer les objets pointés.
5- Comparons avec Java. On ne travaille qu'avec des références. Toutes les créations se font avec des allocations dynamiques de la mémoire.
Merci à vous
Partager