Citation:
Envoyé par
3DArchi
Bonjour à toi,
Tout dépend ce que tu entend par 'store pMyString in a Vector that will be freed by CBase::~Dtor..'. Sur ta fonction, telle que tu la donnes, le pointeur pMyString est perdu, en toute logique il manque un delete. Mais si tu as omis un bout de code (store blablabla), peut être que le pointeur est mémorisé ailleurs.
remplacer le commentaire par:
Citation:
Ici, tu ne retourne pas une variable locale mais une copie de cette variable (car ton type de retour est CString et non pas CString&, ou CString*). Donc, pas de soucis. Si tu traces au debugger, tu verras qu'à l'instruction 'return justastring;', tu vas passer d'abord dans le copy-constructeur (pour construrie ta variable de retour), puis dans le destructeur (destruction de ta variable locale justastring). Si tu regardes plus attentivement l'implémentation MFC des CString, tu verras comment la chaîne de caractère est effectivement gérée.
Construction qui nécessite un delete?