Problème avec l'utilisation d'un constructeur surchargé
Bonjour à tous,
Je fais un jeu de carte en c++ et j'ai donc construit divers classes : une classe carte, une classe paquet de carte (qui herite de carte),une classe Joueur et une classe Jeu.
J'ai construit ma classe Carte de la manière suivante :
Code:
1 2 3 4 5 6
| //constructeur
Carte::Carte(unsigned int valeur,unsigned int couleur):m_valeur(valeur), m_couleur(couleur),m_face(true)
{
} |
Ma classe Paquet de carte
Code:
1 2 3 4 5 6 7 8 9 10
| Paquet::Paquet()
{
for(unsigned int i(0);i<52;i++)
{
m_cartesPaquet.reserve(52);
// les cartes sont classees en 4 couleurs avec des valeurs allant de 1 a 13
m_cartesPaquet.push_back(Carte(i%13+1,(i/13)+1));
}
} |
Où l'attribut m_cartesPaquet est declaré comme un vector de carte de le .h
Lorsque je compile j'ai un problème où au lieu d'appeler mon constructeur surchargé mon programme appelle un constructeur par défaut qu'il ne trouve pas puisque j'ai juste mon constructeur surchargé.
Je crois que l'erreur vient de cette méthode de ma classe Joueur :
Code:
1 2 3 4
| void Joueur::recevoirCartes(Carte carteJ)
{
m_cartesJoueur.push_back(carteJ);
} |
Dois je placer des arguments quelque part afin que ma carteJ soit correctement instanciée ou cette syntaxe est elle correcte avec mon constructeur qui en théorie prend 2 arguments ?
J'ai un petit peu de mal à bien concevoir mes constructeurs pour le moment je débute en c++ et je vois bien l’intérêt de la surcharge mais ne la maitrise pas vraiment.
Merci d'avance pour vos réponses :)