Ami du soir, bonsoir !

C'est re-l'enquiquineur de service !
J'espère que je ne flood pas trop... mais je ne sais pas si c'était une bonne idée de mettre un problème complètement différent à la suite de mon précédent message. J'ouvre donc ce nouveau topic...

Voila, je voudrais overloader l'operator "+" d'une classe.

Mon main :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
    player play1 = player(1 , "Kimy_Ire"); //créer un joueur
    card card1 = card(); //créer une carte
    play1 = play1 + card1; //serait sencé attribuer une carte à un joueur
    play1.info(); //vérification
Vous l'aurez compris, je souhaiterai pouvoir ajouter un élément "card" à un joueur avec le signe "+".

Mon player.h :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class player
{
      private:
              int id;
              std::string name;
              bool GM;
              bool mayor;
              int t;
 
              card player_card;
 
      public:        
             player(int id_player, std::string name_player);
             //Liste de toutes les méthodes...
 
             player operator + (card c);
 
 
};

Mon player.ccp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
void player::give_card(card c)
{
     player_card = c;
}
 
 
player player::operator + (card c)
{
       give_card(c);
}
J'ai retiré toutes les mentions inutiles. Bref, j'ai un soucis de compréhension, je pense. Je ne sais pas pourquoi cela plante. En effet, je n'ai pas de message d'erreur mais le compilateur plante complètement...

J'ai essayé de remplacer toutes les "card c" par des "card *c" ainsi qu'aux endroits appropriés lors des définitions mais cela m'a juste conduit à avoir des erreurs de compilation du type :
no match for 'operator+' in 'play1 + *card1'
J'ai essayé l'ajout de "return this" à la fin de "player player::operator + (card c)" sans réel succès...

J'espère que vous pourrez m'aider !

Merci infiniment du temps que vous prendrez pour moi par avance !


Kimy from Ireland.