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 78 79 80 81 82 83 84 85 86 87 88 89
| #include <string>
using std::string;
class PIECE{
public:
// Un constructeur par defaut
PIECE() : m_iNumP(0), m_szLibelle("") {}
// Un constructeur qui permet de remplir les champs lors de l'instanciation
PIECE(int iNumP, string szLibelle) : m_iNumP(iNumP), m_szLibelle(szLibelle){}
// Le destructeur
virtual ~PIECE(){}
// Methode pour récupérer le nombre de pièce de la classe mère
int GetNumPiece() { return m_iNumP; }
// Methode pour initialiser le membre m_iNumP
void SetNumPiece(int iNumP) { m_iNumP = iNumP; }
// Methode pour initialiser le membre m_szLibelle
void SetLibelle(string szLibelle) { m_szLibelle = szLibelle; }
// Cette méthode permet d'initialiser les valeurs de la classe après son instanciation
void Init(int iNumP, string szLibelle) { m_iNumP = iNumP; m_szLibelle = szLibelle; }
private:
// Les membres privés
int m_iNumP;
string m_szLibelle;
};
class PIECE_DEFECTUEUSE : public PIECE{
public:
// Un constructeur par defaut
PIECE_DEFECTUEUSE() : m_iNumHeureMaintenance(0) {}
// Un constructeur qui pemet d'initialiser le membre m_iNumHeureMaintenance
PIECE_DEFECTUEUSE(int iNumHeureMaintenance) : m_iNumHeureMaintenance(iNumHeureMaintenance) {}
// Un constructeur qui pemet d'initialiser tous les membres même ceux de la classe mère
PIECE_DEFECTUEUSE(int iNumHeureMaintenance, int iNumP, string szLibelle) :
PIECE(iNumP, szLibelle), m_iNumHeureMaintenance(iNumHeureMaintenance) {}
// Le destructeur
~PIECE_DEFECTUEUSE(){}
// Methode pour récupérer le nombre d'heure de la classe fille
int GetNumHeure() { return m_iNumHeureMaintenance; }
// Methode pour initialiser le nombre d'heure
void SetNumHeure(int iNumHeureMaintenance) { m_iNumHeureMaintenance = iNumHeureMaintenance; }
private:
// Le membre privé
int m_iNumHeureMaintenance;
};
void main(){
// Voici des exemples pour utiliser les différents constructeurs des deux classes
// Tu as besoin d'un objet PIECE_DEFECTUEUSE mais tu ne sais pas encore quelles sont les valeurs
PIECE_DEFECTUEUSE cPieceDefectueuse1;
// Plus tard dans ton programme tu remplis les champs de cette classe
cPieceDefectueuse1.SetNumHeure(2);
cPieceDefectueuse1.Init(1, "carburateur");
// Tu as besoin d'un objet PIECE_DEFECTUEUSE mais tu ne connais que le nombre d'heures de maintenance
PIECE_DEFECTUEUSE cPieceDefectueuse2(2);
// Plus tard dans ton programme tu remplis les champs de la classe mère
cPieceDefectueuse1.Init(1, "carburateur");
// Mais tu pourrais utiliser des méthodes distinctes
cPieceDefectueuse1.SetNumPiece(1);
cPieceDefectueuse1.SetLibelle("carburateur");
// Ici on construit l'objet entièrement et tous les champs sont remplis à l'instanciation
PIECE_DEFECTUEUSE cPieceDefectueuse3(2, 1, "carburateur");
} |
Partager