Objets imbriqués et leurs constructeurs
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.
Code:
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");
}
} |
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:
1 2 3 4 5 6 7 8
| class Pion {
public:
Pion(int, Coord);
private:
int identifiant;
Coord coord;
}; |
le problème arrive lorsque je veux créer le constructeur des pions :
Code:
1 2 3 4
| Pion::Pion(int identifiant, Coord coord) {
this->identifiant = identifiant;
this->coord = coord;
} |
J'obtiens l'erreur : pas de fonction concordante pour l'appel à «*Coord::Coord()*» dans le constructeur Pion.
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