New delete quelqun pourrait il m'expliquer simplement ?
plhea
Messages postés45Date d'inscriptiondimanche 13 mars 2005StatutMembreDernière intervention19 mars 2006
-
13 juin 2005 à 21:00
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 2006
-
14 juin 2005 à 09:16
bonjour j'aimerai bien que qqun m'explique l'utilité de new delete et des destructeurs
(les constructeurs je crois avoir compris l'interêt c'ext bon^^) et aussi comment on procède la syntaxe et tout et tout voila
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 13 juin 2005 à 23:22
L'appel du destructeur d'un objet static (= tu n'as pas créer avec new)
est de toute facon appelé automatiquement lorsqu'il faut :) Donc dans
le desctucteur il faudra peut etre mettre des delete suivant les
variables que ta classe utilise (par exemple, si une variable est un
pointeur que tu aurais initialiser avec new).
++
Vous n’avez pas trouvé la réponse que vous recherchez ?
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 14 juin 2005 à 09:16
- Le constructeur est appelée lors de la création d'un objet (allocation statique ou dynamique). Cela permet d'initrialiser l'objet pour que l'on puisse s'en servir sans risque tout de suite.
- Le destructeur est appelé lors de la destruction de l'objet (quand il de vient hors d'accès pour l'allocation statique ou lors d'un delete). Là on se charge de désallouer touttes les ressources allouée par l'objet au cours de sa vie (mémoire, fichiers, connexion...)
Ces 2 méthodes particulières sont appelées automatiquement lors de la création et la destruction des objets.
Ensuite, les objets peuvent être créés de 2 façons : statique et dynamique.
- statique : la place mémoire et sa taille initiale est connue à la compilation. Si c'est un objet global, il est crée au début du prog et est détruit à la fin. Si c'est un objet local, il est crée au début du bloc ou de la fonction est est détruit à la fin du bloc ou de la fonction.
- dynamique (avec pointeur) : aucune place mémoire n'est pré-alloué pour l'objet. La création se fait par new (ou new [] pour les tableaux). La destruction se fait par delete (ou delete[] pour les tableaux). Et là c'est toi qui décide de la vie de ton objet. Mais ça devient plus compliqué à gérer si tu partage l'objet entre plusieurs modules de ton prog car c'est à toi de décider qui va s'occuper de le détruire.