STL et libération mémoire

STL et libération mémoire - C++ - Programmation

Marsh Posté le 05-04-2005 à 08:57:35    

salut
j'apprend à utiliser la STL au travers d'une application que je suis en train d'écrire en C++, et j'avais une question concernant la libération mémoire.
certaines de mes classes contiennent des vector<float>. faut-il les libérer explicitement quand le destructeur de la classe est appelé ? ou bien la libération est-elle automatique quand l'objet est détruit ?
merci

Reply

Marsh Posté le 05-04-2005 à 08:57:35   

Reply

Marsh Posté le 05-04-2005 à 09:02:07    

ton objet qui agrége les vector appele de lui même le destructeur de vector<float>.
Par contre si tu avais un vector<float*> par ex.,il serait de bon [:aloy] de libérez les float* du vector dans le destructeur de ta classe.

Reply

Marsh Posté le 05-04-2005 à 14:42:30    

oui je suis d'accord pour les vector<float *>, ça me paraît logique puisqu'il faut désallouer ce qui est pointé. mais dans le destructeur qui contient le vector, est-ce qu'il faut faire un appel explicite au destructeur de vector ?
 
merci pour ta réponse

Reply

Marsh Posté le 05-04-2005 à 16:02:58    

Je le redit plus fort :  
 
ton objet qui agrége les vector appele de lui même le destructeur de vector<float> lors de sa destruction :o

Reply

Marsh Posté le 05-04-2005 à 23:07:36    

merci, en fait je n'étais pas sûr d'avoir bien compris (j'ai un QI de raton laveur sous acide)

Reply

Marsh Posté le 06-04-2005 à 01:30:18    

psychotek a écrit :

oui je suis d'accord pour les vector<float *>, ça me paraît logique puisqu'il faut désallouer ce qui est pointé. mais dans le destructeur qui contient le vector, est-ce qu'il faut faire un appel explicite au destructeur de vector ?
 
merci pour ta réponse


ça t'arrive souvent d'appeler explicitement le destructeur de quelque chose ?

Reply

Marsh Posté le 09-04-2005 à 00:30:45    

Jamais en 10 ans de C++.


Message édité par fredjm31 le 09-04-2005 à 00:31:18
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed