Salut
J'ai une classe dérivée de CList :
Code :
- class CTreeList : public CList <CTreeItem, CTreeItem&>
|
forcément une classe CTreeItem
Code :
- class CTreeItem : public CObject
|
Dans ma classe CTreeItem, pour pouvoir utiliser la fonction Find() de la liste, j'ai rajouter :
Code :
- bool operator==(const CTreeItem &trIt);
- CTreeItem& operator=(const CTreeItem& source);
- bool AFXAPI CompareElements(CTreeItem *pItem1, CTreeItem * pItem2);
|
Plus tard, je creé un CTreeItem, un CTreeList :
Code :
- CTreeItem search;
- CTreeList lGenre;
|
Puis quand je veux faire mon petit bordel sur lGenre :
Code :
- POSITION pos = NULL;
- search.lbl = genre;
- pos = lGenre.Find(search);
|
Le compilo me renvoie pour l'appel à Find :
binary '==' : no operator defined which takes a left-hand operand of type 'const class CTreeItem' (or there is no acceptable conversion)
e:\microsoft visual studio\vc98\mfc\include\afxtempl.h(1036) : see reference to function template instantiation 'int __stdcall CompareElements(const class CTreeItem *,const class CTreeItem *)' being compiled
J'ai bien sur regarder la MSDN, qui me disent de mettre les trois fonctions que j'ai cité plus haut mais ca marche pas...Quelqu'un pourrait-il trouver ou je me plante et ce que je devrais faire ??
Merci