soucis de construteur de recopie
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 :
Code:
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));
}
} |
je redéclare l'opérateur = :
Code:
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));
}
} |
mon soucis apparait lors de la redeclaration de l'operateur +:
Code:
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;
} |
la ligne CCustomStringList somme(liste); me retourne :
Citation:
no copy constructor available or copy constructor is declared 'explicit'
alors que quand je l'utilise simplement hors de la classe ex :
Code:
1 2 3
|
CCustomStringList a();
CCustomStringList b(a); |
il ne semble pas y avoir de soucis
cela peut venir d'ou ?