je une classe nommée « carte » et une classe nommée « CardDeck », avec la promotion suivante définie dans « CardDeck.h »:opérateur + ne fonctionne pas lorsque les deux paramètres doivent être promus
CardDeck(Card card){cards.push_back(card);}
CardDeck a un opérateur ami +:
friend CardDeck operator+(const CardDeck, const CardDeck);
qui fonctionne très bien pour:
CardDeck+CardDeck
CardDeck+Card
Card+CardDeck
mais il ne fonctionnera pas pour carte + Carte Je reçois:
"no match for 'operator+' (operand types are 'Card' and 'Card')"
Pourquoi ne sont pas les cartes étant promu dans ce cas, les styles de cartes? J'ai aussi essayé opérateur majeur + avec:
friend CardDeck operator+(const Card, const Card);
mais cela ne fonctionne pas non plus. aucun indice pourquoi?
Merci!
Généralement, vous passez 'const CardDeck &', c'est-à-dire des références const à 'operator +'. – PaulMcKenzie
Je ne pense pas que ce soit le problème ici. Pourriez-vous nous montrer la dernière définition d'opérateur? – xinaiz
Comment le compilateur est supposé savoir que vous voulez un 'CardDeck' de 2' Deck's? Que faire s'il y a plus de classes qui exposent aussi les constructeurs pour 'Card'? Ce serait ambigieux. –