Salut,
voilà j'utilise une classe CLayer qui dérive de std::list<CLED*>, à savoir qu'à chaque ajout d'un élément CLED* dans ma liste, un nouveau CLED est instancié avec allocation dynamique de mémoire.
J'ai eu besoin d'un constructeur de copie pour ma classe CLayer capable de réallouer les zones mémoire de chacun des CLED* de ma liste.
Voici comment j'ai procédé :
Cette méthode fonctionne sans problème, mais je me posais tout de même une question : admettons que je souhaite faire de l'itération sur Source et boucler des this->push_back(...), à savoir que le compilateur n'autorise pas à faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 CLayer::CLayer(const CLayer &Source) { *this = Source; CLayer::iterator tmpIt; for (tmpIt=begin(); tmpIt!=end(); tmpIt++) *tmpIt=new CLED(**tmpIt); }(apparement parce que Source est const et tmpIt ne l'est pas...), comment aurais-je dû m'y prendre ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part tmpIt=Source.begin()
Merci de m'aider à satisfaire ma curiosité
Rémy
Partager