[stl]

Le
Bruno Causse
bonjour,

j'ai deux vector d'objet de meme nature

vector< A > x;
vector< A > y;

/
les vector x et y; sont remplis
/

x = y;

les anciens objets de x sont ils liberés? (ou ai je une fuite?)

merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Franck Branjonneau
Le #305711
"Bruno Causse"
vector< A > x;
vector< A > y;

x = y;

les anciens objets de x sont ils liberés? (ou ai je une fuite?)


Il sont libérés.

--
Franck Branjonneau

Sébastien Guérif
Le #305667
vector< A > x;
vector< A > y;

.../...
// les vector x et y; sont remplis
.../...

x = y;

les anciens objets de x sont ils liberés? (ou ai je une fuite?)


Les objets de x sont détruits et la mémoire qui eur était allouée
estlibérée ssi le destructeur de la classe libère correctement la
mémoire allouée dynamiquement (en cas d'usage direct ou indirect de "new")

Hope this helps!
Sébastien

James Kanze
Le #305665
On Apr 9, 9:38 pm, "Bruno Causse"
j'ai deux vector d'objet de meme nature

vector< A > x;
vector< A > y;

.../...
les vector x et y; sont remplis
.../...

x = y;

les anciens objets de x sont ils liberés? (ou ai je une fuite?)


Libérés dans quel sens ? Dans une implémentation « normale »,
je crois, beaucoup va dépendre des tailles rélatives des deux
vecteurs, ainsi que la capacité d'x. Grosso modo, ce auquel je
m'attendrais, c'est que si x.capacity() < y.size(), les
min(x.size(),y.size()) éléments seront affectés ; s'il en reste
des éléments en x, ils seront détruit (appel du destructeur),
tandis que s'il en reste dans y, ils seront copié (appel du
constructeur de copie). Tant que la capacité de x suffit
(qu'elle est inférieur à la taille de y), en revanche, la
bibliothèque n'a pas le droit de libérer.

Si en revanche la capacité d'x ne suffit pas, oui, tous les
destructeurs des éléments d'x seront appelés, la mémoire
libérée, et ensuite un nouveau bloc, plus grand, alloué, et les
éléments y copiés.

Ensuite, évidemment, c'est à toi d'écire le constructeur de
copie, l'opérateur d'affectation et le destructeur qu'il faut.

--
James Kanze (GABI Software) email:
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34

Publicité
Poster une réponse
Anonyme