Programmation Orientée objet en C++
Chapitre 1. 1 Vocabulaire
Chapitre 2. 2 Principes de la programmation objet
Chapitre 3. 3 Du C au C++
Chapitre 4. 4 Les classes
4.1. Entête dans le .hpp
4.2. Définition dans le .cpp
4.3. Instanciation et Utilisation
4.4. Utilisation avec des pointeurs
4.5. Fonctions
4.6. Constructeurs/Destructeurs
4.7. Objets utilisés en paramètres, en retour
4.8. Adresse d'un objet : this
4.9. Constructeur par recopie
4.10. Objets contenant d'autres objets
4.11. Surcharge/Surdéfinition d'opérateurs
4.12. Héritage
Home pageContentsHigher levelPrevious page Bottom of page

Constructeurs – Destructeurs

Si la classe fille possède un constructeur, celui-ci ne sera appelé qu’une fois le constructeur de la classe mère exécuté. Dans le cas des destructeurs, l’ordre est inverse, celui de la classe fille est appelé avant celui de la classe mère.

Exemple :
class MaClasse1 {
public:
MaClasse1( ) {
cout<< "MaClasse1" << endl;
}
~MaClasse1( ) {
cout<< "~MaClasse1" << endl; }
};

class MaClasse2 : public MaClasse1 {
public:
MaClasse2( ) {
cout<< "MaClasse2" << endl;
}
~MaClasse2() {
cout<< "~MaClasse2" << endl;
}
};

void main() {
MaClasse2 *c2 = new MaClasse2;
// ...
delete c2;
}

Affichera :

MaClasse1
MaClasse2
~MaClasse2
~MaClasse1

Dans le cas ou les constructeurs nécessiteraient des paramètres, on aurait à définir :

maClasse2::maClasse2(paramètres): maClasse1(paramètres)

Remarque :
Il est tout à fait possible de convertir une instance de classe dérivée en une instance de la classe de base. L'inverse est par contre interdit puisque le compilateur ne saurait pas comment initialiser les membres de la classe dérivée.

Home pageContentsHigher levelPrevious pageTop of pageFollowing page