Constructeur de copie et destructeur

Résolu
cs_tom24 Messages postés 5 Date d'inscription mardi 14 mars 2006 Statut Membre Dernière intervention 4 juin 2009 - 14 mars 2006 à 22:21
cs_tom24 Messages postés 5 Date d'inscription mardi 14 mars 2006 Statut Membre Dernière intervention 4 juin 2009 - 15 mars 2006 à 18:38
Bonjour à tous!



Voila je debute en programmation (je suis en premiere année de DUT
informatique), j'ai commencé la programmaton avec java et je continue
avec C++.



Mais j'ai quelques petit souci, donc j'espere que vous pourrez m'aider.

Voila, dans un devoir que je dois faire il faut que je crée un
constructeur de copie ainsi qu'un destructeur, mais j'ai du mal a les
faire!



voici le constructeur:

(C'est un programme sur les nombres rationnels)

CRatio::CRatio (long p, long q)

{

if (q == 0L)

{

cerr << mess;

exit (-1);

}

mNum = p;

mDen = q;

Reduit ();

}

et donc j'ai du mal a faire le contrcuteur de copie de celui ci...(désolé je debute )

Pour ce qui est du destructeur, je ne vois pas vraiment non plus
comment faire, dans des exercices deja realisés, il y avait un "new"
dans le constructeur, ce qui donnait un "delete" dans le destructeur,
mais la je vois pas trop comment faire...



Voila j'espere avoir été un peu clair dans mes explications de mon
probleme, si vous avez besoin de plus d'elements pour me guider, je les
mettrai donc ici sans aucun probleme!

Aussi, je ne vous demande pas de faire mon exercice, mais au moins de
me guider et si possible de m'expliquer un peu plus. J'ai fouiller sur
le net mais rien n'a vraiment su m'expliquer (peut etre n'ai je pas
cherché la où il fallait aussi!)





Merci d'avance

2 réponses

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
14 mars 2006 à 23:44
Tu as des quantités d'aide et de tutoriaux sur le net. Faut chercher un peu plus.



Si tu n'as pas de "new" dans ton constructeur, tu n'auras généralement
pas de "delete" dans ton destructeur. Dans ton cas, il n'y a rien a
mettre dans le destructeur, donc c'est simple:

~CRatio

{

}



Pour la constructeur de copie, nous, on l'utilise qd on fait ceci:

CRatio c1(2, 3);

CRatio c1(c2); <= utilisé ici.



Après le compilo l'utilise également mais dans d'autres situations.

Donc ton constructeur de copie prend un objet CRatio en paramètre et uniquement 1 paramètre:

CRatio(const CRatio & _which)

{

... <= a toi de remplir.

}



Le "const" indique que l'objet ne doit pas etre modifié par le constructeur et la référence évite des copies inutiles d'objets.
3
cs_tom24 Messages postés 5 Date d'inscription mardi 14 mars 2006 Statut Membre Dernière intervention 4 juin 2009
15 mars 2006 à 18:38
Merci beaucoup pour toutes ces reponses!



Et promis je vais chercher plus!



Merci encore!
0
Rejoignez-nous