Constructeur de copie modifiant le paramètre ?
Bonjour,
J'ai un petit problème de conception concernant un constructeur de copie. Pour ce type de constructeur, l'objet est toujours passé en const... or avec la façon dont j'ai procédé, je suis obligé de le modifier pour le copier :? .
Je m'explique, j'ai une classe Liste qui comporte des opérations comme ValeurCourante(), Suivant(), Précédent()..etc...
Donc dans le constructeur par copie j'aurais voulu faire un truc du genre :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| Liste::Liste(const& pListe)
{
pListe.FixerTete(); // position courante = la tête de la liste
int i=0;
int longueur = pListe.Longueur();
//on parcours la liste passée en paramètre et on insère dans la liste actuelle les éléments un par un
while ( i <= longueur )
{
Inserer(pListe.ValeurCourante());
pListe.Suivant();
i++;
}
} |
Le problème est que les opération Suivant() et FixerTete() modifient l'objet donc ne respectent pas le const.
En gros... je me suis très mal débrouillé :roll: . Une idée pour me sortir de là ? :merci: