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 :
Vous l'aurez compris, je souhaiterai pouvoir ajouter un élément "card" à un joueur avec le signe "+".
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
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 :
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...
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 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 :J'ai essayé l'ajout de "return this" à la fin de "player player::operator + (card c)" sans réel succès...no match for 'operator+' in 'play1 + *card1'
J'espère que vous pourrez m'aider !
Merci infiniment du temps que vous prendrez pour moi par avance !
Kimy from Ireland.
Partager