Bonjour,
j'ai un petit soucis avec un constructeur de recopie,
j'ai une classe qui contient un CStringList m_slListe, j'ai déclaré ces constructeurs :
je redéclare l'opérateur = :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 CCustomStringList::CCustomStringList (void) { } CCustomStringList::CCustomStringList (CCustomStringList & liste) { POSITION p = liste.m_slListe.GetHeadPosition(); while (p != NULL) { m_slListe.AddTail(liste.m_slListe.GetAt(p)); } }
mon soucis apparait lors de la redeclaration de l'operateur +:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 void CCustomStringList::operator = (const CCustomStringList & liste) { Clear(); POSITION p = liste.m_slListe.GetHeadPosition(); while (p != NULL) { m_slListe.AddTail(liste.m_slListe.GetAt(p)); } }
la ligne CCustomStringList somme(liste); me retourne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 CCustomStringList CCustomStringList::operator + (const CCustomStringList & liste) { CCustomStringList somme(liste); POSITION p = liste.m_slListe.GetHeadPosition(); while (p != NULL) { m_slListe.AddTail(liste.m_slListe.GetAt(p)); } return somme; }
alors que quand je l'utilise simplement hors de la classe ex :no copy constructor available or copy constructor is declared 'explicit'
il ne semble pas y avoir de soucis
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 CCustomStringList a(); CCustomStringList b(a);
cela peut venir d'ou ?
Partager