Bonjour,
Dans le cadre de mon travail de programmation, je souhaiterais réaliser le tri des éléments d'un tableau contenant des adresses d'éléments de grande taille (afin d'alléger le travail et d'accélérer le code, je préfère conserver les adresses des éléments et non les éléments eux-mêmes).
Au final, le code bute sur l'écriture de l'opérateur de comparaison entre éléments :
Code :
- bool operator<(MaClasse* a,MaClasse* b)
- {
- //
- // Ma méthode de comparaison
- //
- }
|
Ainsi, le compilateur renvoie le message pour ces lignes :
Code :
- error C2803: 'operator <' doit avoir au moins un paramètre de type classe
|
L'algorithme de tri a été défini séparément et fonctionne tout à fait correctement sur des éléments non pointés (ie opérateur bool operator<(MaClasse a,MaClasse b) plutot que bool operator<(MaClasse* a,MaClasse* b)).
Est-ce que certains d'entre-vous sauraient d'où vient le problème et comment le corriger ?
Est-ce qu'il est possible, en C++, d'introduire des opérateurs de comparaison pour des opérations de tri, qui portent sur des pointeurs d'éléments et non les éléments eux-mêmes ?
En vous remerciant d'avance de votre aide