Destruction non voulue [C++] - C++ - Programmation
Marsh Posté le 01-04-2004 à 15:08:28
j'ai peur.
fais voir ton constructeur (const char *) et ton destructeur ?
(roh pis meme, c'est cradeux ton truc)
Marsh Posté le 01-04-2004 à 15:11:09
chrisbk a écrit : j'ai peur. |
Alors, le constructeur :
Code :
|
Le destructeur :
Code :
|
Marsh Posté le 01-04-2004 à 15:13:24
mais c'est quoi ce N stupide ? tu veux pas le virer ?
T'as fait un constructeur de recopie ? (String::String(const String & ))
Marsh Posté le 01-04-2004 à 15:17:48
chrisbk a écrit : mais c'est quoi ce N stupide ? tu veux pas le virer ? |
oauis, ya un constructeur par recopie
pour le N, on peut le jareter oui, je pense pas que ca soit la cause du probleme
Code :
|
Marsh Posté le 01-04-2004 à 15:19:03
c'est normal que Z soit detruit, vu que c'est un objet local. Cela dit il y aura creation d'un nouvel objet par le truchement de ton constructeur de recopie.
t'entends quoi par retour qui foire ?
Marsh Posté le 01-04-2004 à 15:22:41
en voilà une implémentation de string qui est un anti-modèle
Marsh Posté le 01-04-2004 à 15:25:38
chrisbk a écrit : c'est normal que Z soit detruit, vu que c'est un objet local. Cela dit il y aura creation d'un nouvel objet par le truchement de ton constructeur de recopie. |
en fait, le probleme, c'est que je n'utilisais pas le constructeur par recopie...
je faisais ca :
Code :
|
je pense qu'en faisant
Code :
|
ca devrait fonctionner...
c'est vraiment mon tout premier code en C++ donc fo etre indulgent..
j'ai deja peur d'une future intervention de Taz (koike je c pas si il intervient aussi en C++ )
Marsh Posté le 01-04-2004 à 15:26:11
Taz a écrit : en voilà une implémentation de string qui est un anti-modèle |
lol, kes ke je disais !!
tu peux m'expliquer ce que tu veux dire par la stp et quelle aurait été une solution plus correcte ?
Marsh Posté le 01-04-2004 à 15:29:31
1) pas de gestion d'erreur (magique ton constructeur d'ailleurs)
2) chaine à taille fixe ...
3) tu traines les boulets de c-string à savoir l'\0 final
4) t'as pas de surcharge d'opérateur
5) etc
je sais que c'est à but didactique, mais bien faire ça c'est déjà très compliqué, ça demande de la réflexion
Marsh Posté le 01-04-2004 à 15:35:49
Taz a écrit : 1) pas de gestion d'erreur (magique ton constructeur d'ailleurs) |
je vais essayer d'ameliorer tout ca.
je decouvre la POO et le C++, ya vraiment beaucoup de fonctionnalités...
c'est mon premier TP ca en fait et je suis allé un peu plus loin puisque l'enoncé ne demandait que une allocation statique.
mais comme je compte coder mes prochians projets en C++, j'essaie d'acquerir de bon automatismes des le debut
Marsh Posté le 01-04-2004 à 15:37:39
ben là c'est bof ...
si tu commencais par faire une pauvre classe qui contient juste
int *p = new int;
et qui gère ça à peu près correctement, ça serait déjà énorme
Marsh Posté le 01-04-2004 à 15:42:06
Taz a écrit : ben là c'est bof ... |
mon projet en cours c du cryptage RSA
je comptait créer une classe qui gere les nombres infinis, mais je pense que ca sera trop galere vu mon niveau..
je pense deja faire une classe complete et bien propre pour gerer des __int64
mais si t'as des suggestions..
Marsh Posté le 01-04-2004 à 15:42:38
ou alors, je code le projet en C, mais je veux vraiment me mettre a la POO
Marsh Posté le 01-04-2004 à 15:45:20
vois le désastre ... je te propose de faire le petit exercice que je t'ai dit, juste pour te tester
Marsh Posté le 01-04-2004 à 15:05:57
salut, je me mets au C++ et la, je suis confronté à un probleme avec les destructeurs.
cette fonction :
pourquoi z est détruit et le retour foire ??
la fonction fonctionne parfaitement si on ne code pas les destructeurs.
merci de votre aide
++