Une petite question qui va vous sembler bête mais je ne trouve pas de vraie réponse sur le net.
Quel est l'intéret d'instancier une classe en utilisant le mot clé new ?
Voilà, ca se résume à ca
Publicité
Posté le 08-02-2007 à 09:04:05
Taz
bisounours-codeur
Posté le 08-02-2007 à 10:22:16
Le fait est que new a rapport avec la classe d'allocation d'un objet et pas avec sa construction.
j'ai compris que l'allocation sur le tas permet de conserver notre objet en mémoire même en dehors de la méthode dans laquelle il est instancié. Le problème étant qu'on est ensuite responsable de la désallocation (ce qui n'est pas le cas lors de l'allocation sur la pile).
Mais ce que je ne vois pas, c'est un cas concret qui me forcerait à faire ca, avec tous les risques que ca comporte.
Lapin* nouveauPetit=new Lapin (nom,age,nbOreilles);
petitsAAllaiter.push_back(nouveauPetit);
return nouveauPetit ;
}
void Elevage::gerer()
{
Lapin male ("blob",3,1.5);
Lapin femelle ("blib",3,1.5);
Lapin *petit1=femelle.seReproduire(male);
...
}
dans cet exemple la femelle donne un petit qu'elle conserve dans petitsAAllaiter et renvoie le pointeur du petit à l'Elevage pour qu'il puisse le connaitre aussi.
Comme ça, un seul petit est créé, mais l'éleveur et sa mère le connaissent.