New delete quelqun pourrait il m'expliquer simplement ?

plhea Messages postés 45 Date d'inscription dimanche 13 mars 2005 Statut Membre Dernière intervention 19 mars 2006 - 13 juin 2005 à 21:00
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Derniè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

plhea

5 réponses

cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
13 juin 2005 à 21:13
char* szChaine; //Pointeur qui vaut rien :)

szChaine = new char[256]; //Initialisation du pointeur

delete[] szChaine; //destruction pour pas qu'il y'ai de la mémoire allouée qu'on utilise plus

utilise delete[] lorsque qu'on crée un tableau, et sinon delete quand c'est pas un tableau

new et delete c'est la version C++, en C on utilise malloc() et free() (Hein Vecchio ;) )
donc vala en gros...


void Aurevoir( void ); //Bonne journée
0
plhea Messages postés 45 Date d'inscription dimanche 13 mars 2005 Statut Membre Dernière intervention 19 mars 2006
13 juin 2005 à 21:32
et le destructeur il intervient quand?
il est appelé automatiquement non?

plhea
0
xterminhate Messages postés 371 Date d'inscription dimanche 4 janvier 2004 Statut Membre Dernière intervention 23 septembre 2009
13 juin 2005 à 22:32
new appelle le constructeur, delete le destructeur.

Cordialement,
Xterminhate.
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
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).



++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
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.
0
Rejoignez-nous