création d'objet

création d'objet - C++ - Programmation

Marsh Posté le 10-06-2006 à 13:22:45    

bonjour ,  
je voudrai savoir pourquoi il existe deux façons de créer un objet ( statique ou dynamique)  
 
merci

Reply

Marsh Posté le 10-06-2006 à 13:22:45   

Reply

Marsh Posté le 10-06-2006 à 15:11:26    

ffffff bonne question.
D'abord de quoi tu parle? du mot-clé static?
Ou de la difference entre une variable créée avec new() ou pas?


Message édité par nargy le 10-06-2006 à 15:12:00
Reply

Marsh Posté le 10-06-2006 à 16:06:32    

de créer avec new ( en dynamique ) ou en statque,
pourquoi il y a deux façons???

Reply

Marsh Posté le 10-06-2006 à 16:27:14    

Parcequ'il y a deux parties distincte en mémoire.
 
La Pile:

Code :
  1. {
  2.   Objet monObjet();
  3.   int monEntier;
  4. }


Ces variables sont créées sur la pile, ainsi appelé car les variables sont empilées et sont automatiquement supprimés à la fin du bloc {} dans lequel elles ont été déclarées.
 
Le Tas:

Code :
  1. {
  2.   Objet* monObjet=new Objet();
  3.   int* monEntier=new int();
  4. }


Les pointeurs sont créés sur la pile, et libérés à la fin du bloc, mais l'objet lui-même est créé sur le tas, ainsi appelé car les objets y sont entreposés en désordre. L'objet n'est supprimé que lorsque l'on appelle explicitement le destructeur de l'objet:

Code :
  1. {
  2.   delete monObjet;
  3.   delete monEntier;
  4. }


En gardant un pointeur sur l'objet, on peut garder un objet pour l'utiliser dans diverses parties d'un programme, puis le supprimer quand on en a plus besoin, indépendamment des blocs de code.
L'utilisation du tas necessite de prévoir dans le programme la gestion de la mémoire.


Message édité par nargy le 10-06-2006 à 16:28:35
Reply

Marsh Posté le 10-06-2006 à 16:37:48    

Exemple: garder  en mémoire un ensemble d'éléments de même type.
 
Exemple d'utilisation de la pile:
un tableau (accès rapide, ajout/suppression lent)
http://www.commentcamarche.net/c/ctab.php3
 
Exemple d'utilisation du tas:
une liste chaînée (accès lent, ajout/suppression rapide)
http://www.commentcamarche.net/c/cliste.php3

Reply

Marsh Posté le 10-06-2006 à 17:45:38    

merci bcp

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed