Bonjour.
j'ai une 1° classe qui décrit des coordonnées 2D sur un plateau. le constructeur unique prend en entrée la ligne et la colonne pour tester la validité des valeurs fournies.
j'ai une 2° classe qui décrit des pions sur ce plateau. un pion possède un identifiant, et une position décrite par un objet Coord :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Coord::Coord(int row, int col) { if (not (row >= 0 and row < TAILLEGRILLE) and (col >= 0 and col < TAILLEGRILLE)) { this->lig = row; this->col = col; } else { throw std::invalid_argument("cordonnées invalides"); } }
le problème arrive lorsque je veux créer le constructeur des pions :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 class Pion { public: Pion(int, Coord); private: int identifiant; Coord coord; };
J'obtiens l'erreur : pas de fonction concordante pour l'appel à «*Coord::Coord()*» dans le constructeur Pion.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Pion::Pion(int identifiant, Coord coord) { this->identifiant = identifiant; this->coord = coord; }
Comme je n'ai pas, par contrainte d'exercice, de constructeur par défaut pour l'objet Coord, je ne trouve pas comment coder correctement le constructeur des pions.
Merci pour vos indications/éclaircissements.
Yves
Partager