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 :
Ma classe Paquet de carte
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 //constructeur Carte::Carte(unsigned int valeur,unsigned int couleur):m_valeur(valeur), m_couleur(couleur),m_face(true) { }
Où l'attribut m_cartesPaquet est declaré comme un vector de carte de le .h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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)); } }
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 :
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 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 void Joueur::recevoirCartes(Carte carteJ) { m_cartesJoueur.push_back(carteJ); }
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
Partager