C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

[stl]

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French)
View previous topic :: View next topic  
Author Message
Bruno Causse
Guest





PostPosted: Tue Apr 10, 2007 12:38 am    Post subject: [stl] Reply with quote



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
Back to top
Franck Branjonneau
Guest





PostPosted: Tue Apr 10, 2007 4:12 pm    Post subject: Re: [stl] Reply with quote



"Bruno Causse" <bcausse (AT) lepoint (DOT) tm.fr> écrivait:

Quote:
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
Back to top
Sébastien Guérif
Guest





PostPosted: Wed Apr 11, 2007 3:33 am    Post subject: Re: [stl] Reply with quote



Bruno Causse a écrit :
Quote:
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
Back to top
James Kanze
Guest





PostPosted: Wed Apr 11, 2007 9:12 am    Post subject: Re: [stl] Reply with quote

On Apr 9, 9:38 pm, "Bruno Causse" <bcau...@lepoint.tm.fr> wrote:

Quote:
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:james.kanze (AT) gmail (DOT) com
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
Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.