Quel est le type de P1 ?
Quel est le type de P1 ?
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
P1 est un PaquetDeCarte, c'est donc un tableau de 52 pointeurs vers Carte.
C'est ce que tu voulais savoir?
Et l'erreur dit que tu n'as pas défini de surcharge de l'opérateur << pour ostream et PaquetDeCarte.
Le prototype d'une telle fonction doit être du genre:
Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 std::ostream & operator<< (std::ostream &o, PaquetDeCarte const &p) { //Faire ce qu'il faut pour l'affichage du contenu de p //... return o; }
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
J'ai justement définit mon opérateur << pour qu'il m'affiche une carte dans le genre "deux de coeur".
quand je fais le code:
cout << P1;
je veux juste qu'il m'affiche les 52 cartes.
si je dois quand même surcharger l'opérateur <<, est-ce que je peux le faire dans ma classe PaquetDeCarte tout en sachant que je l'ai déjà surchargé dans ma classe Carte ou est-ce que cela va poser problème?
La surcharge se fait à l'extérieur de toute classe, pour le <<.
Mais il n'y a aucun problème pour faire une surcharge par type, tu sais...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
qu'entends tu par "surcharge par type" est ce que je pourrais avoir un exemple, même pas concret?
C'est pourtant simple:
Deux types, deux surcharges de l'opérateur <<. Une par type.
Code C++ : 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
20
21
22
23
24
25
26 //Deux types: class UneClasse { //... }; class UneAutreClasse { //... }; //Deux surcharges std::ostream & operator<< (std::ostream &o, UneClasse const &uc) { //... return o; } std::ostream & operator<< (std::ostream &o, UneAutreClasse const &uac) { //... return o; }
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Ok merci, j'avais un doute mais c'est bon j'ai compris!
Je vais m'atteler à ça
Bon ça va j'ai bien cerné le problème maintenant,
Mais j'ai une autre question (désolé de vous ennuyer comme ça...)
J'ai fait une méthode pour echanger des valeurs de pointeur (pour mélanger mes cartes)
voila ce que ça donne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part void melanger ((Carte*)& P1, (Carte*)& P2);Dois-je surcharger l'operateur = pour que cela fonctionne?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 void PaquetDeCarte::melanger ((Carte*)& P1, (Carte*)& P2) { Carte* ptr; ptr=P2; P2=P1; P1=ptr; }
Non pas besoin, par contre, tu dois peut-etre avoir un probleme pour compiler car les parentheses qui entourent les (Carte*) sont interprétées comme des cast C-style. Donc vire les.
Et je te conseillerai d'utiliser des références (plus pratiques à utiliser à mon avis) .
Partager