no save
Assistance
Achat
News

Forum | programmation
[C++] return par référence
Omega_55, le sam. 08 juil. 2006 à 19:03:54
Salut tout le monde,

Je programme assez bien le C++, mais je ne vois pas toujours bien ce qui se passe au niveau allocation de la mémoire.

Genre, j'ai une classe dont une méthode fait un retour par référence.

Si je fais

double& MaClasse::MaMethode()
{
double* a=new double(2);
return *a;
}

J'ai alloué de la mémoire qui ne sera pas libérée à la fin de la méthode puisque j'utilise "new".

Mais lorsque j'appelle ma méthode, je ne peux plus libérer la mémoire puisque je reçois non pas un pointeur en retour mais un objet, donc impossible de faire delete sur le "double a" retourné...

Où est l'erreur ? Faut il absolument éviter d'allouer de la mémoier avec new dans ce cas ?

Ou peut être la valeur retournée sera "locale" dans la section d'appel à la méthode, et sera détruite à la fin de cette section ?

Merci d'avance... Configuration: Dev C++


Char Snipeur
juil. 06
Suivant
REPONSES
Char Snipeur
juil. 06
Omega_55
juil. 06
gaby10
juil. 06
Char Snipeur
juil. 06
gaby10
juil. 06
Char Snipeur
juil. 06
kilian
juil. 06
nico
sept. 08
kilian
sept. 08
nico
sept. 08
Version Web
Réalisé par RedShift
no save