Problème de constructeur sur une classe qui hérite
Bonjour ;
voilà j'ai deux classes : Piece et Pion
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
class Piece {
private:
char* couleur;
Case* place;
char etiq_Piece;
public:
// constructeurs
Piece(char etiq1);
Piece(int col, int lig, char* coul, char etiq);
Piece(int col, int lig, char* coul);
:: ici y a des méthodes etc ..
}
Piece::Piece(char etiq1) {
place = new Case();
etiq_Piece = etiq1;
}
Piece::Piece(int col, int lig, char* coul, char etiq){
place = new Case(col,lig,etiq);
couleur = coul;
etiq_Piece = etiq;
}
Piece::Piece(int col, int lig, char *coul){
place = new Case(col,lig);
couleur = coul;
etiq_Piece = this->etiq_Piece;
}
// classe Pion
class Pion:public Piece {
private:
char identifiant;
public:
char GetIdentifiant() const {
return identifiant;
}
void SetIdentifiant(char identifiant1) {
this->identifiant = identifiant1;
}
Pion():Piece('P'){};
Pion(int col, int lig, char *coul);
// Pion(const Pion& orig);
virtual ~Pion();
};
// Pion.cpp
Pion::Pion(int col, int lig, char *coul){
Piece(col,lig,coul); // ici j'appelle la classe Base
this->setEtiquettePiece('P');
}
Pion::~Pion() {
} |
et quand je compile sous Eclipse il m'indique ce genre de message :
Code:
1 2 3
|
Description Resource Path Location Type
no matching function for call to `Piece::Piece()' Pion.cpp /Chess/src line 67 C/C++ Problem |
la ligne 67 correspond au constructeur dans Pion.cpp
Code:
1 2
|
Pion::Pion(int col, int lig, char *coul) |
et ma question st ce qu'on doit passer par le constructeur par défaut Piece::Piece() commme il indique pour un héritage ou cette erreur est dûe à quoi ??
ma deuxième question :
dans la classe pièce , vous avez remarqué que j'ai utilisé un pointeur sur case , vu que j'utilise new Case dans le constructeur est ce que le destructeur doit être comme çà
Code:
1 2 3 4 5 6
|
Piece::~Piece() {
// TODO Auto-generated destructor stub
delete place ;
delete couleur;
} |
merci d'avance pour vos réponses :coucou: