Bonjour à tous.
Il y'a un truc que je pige pas trop en C++.. Ne fait pas attention à la syntaxe, c'est la theorie qui m'interresse
Imaginons une classe "voiture".
Si dans une fonction "duplicate" je cherche à retourner un nouvel objet "voiture" je ne sais pas comment je doit m'y prendre et ce que cela implique. Par ex :
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 voiture duplicate(){ voiture v; return v; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 voiture* duplicate(){ voiture v,*ptr; ptr=&v; return ptr; }
Ce que je ne pige pas d'une part, c'est la portée. ici "v" est declaré et initialisé dans ma fonction duplicate. Donc normalement, une fois terminé, la mémoire devrait etre liberé. Dans ce cas, ces 2 principes sont-ils faux vue que je peut pas reutiliser le pointeur retourné ?
En fait ce que je cherche à faire c'est declarer et initialiser un nouvel objet "v" en appellant la fonction duplicate();
dans le genre :
Mais cette ecriture est pas bonne. Si je passe par un pointeur est-ce que je suis obligé de faire un delete pour eviter une fuite de mémoire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 voiture v=duplicate();
Je sais que je suis pas clair, j'ai bien besoin d'une chtite explication
Merci !
Partager