Je réponds à ma propre question. Le fait est que ce que je fais n'est pas exactement ce que j'ai posté mais je pensais que c'était la même chose, en fait, j'utilise des opérateurs qui prennent des arguments. Ce corps d'opérateurs doit être défini après mes constructions ( ) car la structure B ne connaît pas encore les membres de la structure A ...
J'ai dit que ça fonctionnait avec les classes car avec les classes on utilise habituellement le fichier CPP pour la définition des méthodes, ici je ne suis pas en utilisant un fichier cpp pour les méthodes j'utiliser dans mon struct
J'étais sur le point de supprimer ce message mais vous les gars trop vite;),
Voici un exemple
struct A;
struct B {
int member;
bool operator<(const A& right); //body not defined
};
struct A {
int member;
bool operator<(const B& right)
{
return this->member < B.member;
}
};
bool B::operator<(const A& right) //define the body here after struct A definition
{
return this->member < A.member;
}
Juste pour clarifier, Lorsque vous utilisez des classes cela fonctionne, quand vous utilisez des structs ce n'est pas le cas? Si oui, quel compilateur utilisez-vous? –
Cela ne peut pas fonctionner même si vous remplacez le mot-clé struct par class. Les deux sont la même chose en C++ de toute façon. À part ça, j'irais avec la réponse de Rudolph, sauf que vous pouvez aussi utiliser des références. –
vous avez tous les deux raison ... – MiniScalope