Bonjour,
Je suis confronté à un problème apparemmment commun en C++, à savoir j'ai "mal" copié un vecteur et je ne sais pas comment rectifier le tir.
Je m'explique :
Je dispose d'un object A de type vector<Objet*>. Dans une fonction je suis ammené à travailler cet objet A et à le transformer, MAIS, je tiens à conserver la version originale, c'est pourquoi je créé un objet B de type vector<Objet*>.
J'instancie B (initialement identique à A) via :
vector<Objet*> B = A;
Par la suite je suis ammené à écrire quelque chose de la forme "A ---> B", et c'est là que je constate que j'ai copié les pointeurs vers les objets du vecteur A et non pas leur contenu et que par conséquent une modification de l'un modifie également l'autre.
Ce que je voulais était obtenir un autre vecteur contenant des pointeurs vers une série d'objets DISTINCTS de ceux de A (même si identiques au début). J'ai mis un certain temps à déduire que les erreurs que j'obtenais vennaient de ma copie incorrecte.
J'ai l'obligation de manipuler des pointeurs vers les objets (ceux-ci était bien trop gros pour être copiés), aussi quelle serait la bonne méthode pour procéder ?
Je recours une fois de plus à votre aide, merci d'avance !
Partager