2010-05-20 6 views
1

Avoir une classe Day qui contient des membres pour contenir des données.Cela corrige à nouveau l'erreur C2679 VC++

J'ai une classe RedBlackTree qui contient un tableau d'objets Day.

Day m_list[MAX_LIST]; 

Ce code ci-dessus provoque cette erreur:

Erreur 3 Erreur C2679: binaire '=': aucun opérateur trouvé qui prend un opérande à droite de type 'const Mois' (ou il n'y a pas acceptable conversion) c: \ program files \ microsoft Visual studio 8 \ vc \ include \ xutility 2949

int m_list[MAX_LIST]; 

Quand je remplace jour pour entier je ne reçois pas l'erreur. Qu'est-ce qui me manque dans ma classe de jour? j'ai cet opérateur =

const Day & Day::operator=(Day &otherDay) 
{ 
    if(this != &otherDay)  // avoid self copy 
     Copy(otherDay); 

    return *this; 
} 

Répondre

1

Il se plaint de Day manque un operator= qui prend un paramètre de type const Month&.

L'en-tête xutility est un en-tête interne de l'implémentation de bibliothèque standard fournie avec Visual Studio. Regardez à quoi correspond la ligne de fonction 2949 et cela vous indiquera la direction de votre problème.

+0

Notez que l'opérateur doit prendre un 'const Month &', et l'erreur peut également se produire, par exemple, 'Month &'. – sbi

+0

D'accord? Je ne pense pas avoir de code qui veut Day to = const Month Je ne peux que penser que dans ma classe Month, je n'ai pas d'opérateur =. À part ça, quel code devrais-je rechercher dans mon projet? –

+0

Est-ce que quelqu'un peut également expliquer pourquoi j'obtiendrais cette erreur en ayant cette ligne pour créer un tableau de jours? –