Besoin d'un peu d'aide sur l'héritage et les constructeurs [Résolu]

Signaler
Messages postés
442
Date d'inscription
jeudi 4 avril 2002
Statut
Membre
Dernière intervention
11 août 2008
-
Messages postés
442
Date d'inscription
jeudi 4 avril 2002
Statut
Membre
Dernière intervention
11 août 2008
-
Bonjour tout le monde, j'ai deux petites question à propose du langage c++ sur l'héritage et les constructeurs:

Tout d'abord, je voudrai savoir si lorsque une classe contiend deux constructeurs, un des constructeur peut appeler l'autre (par exemple un constructeur 2 fesant la meme chose que le 1 plus quelque chose, afin d'éviter la duplication de code). Si oui quelle est la synthaxe ?

Ensuite j'aimera savoir si un constructeur d'une classe B héritant d'une classe A peut appeler le constructeur de A lorsque une instance est crée ?

Merki pour vos réponses

neodelphi

6 réponses

Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
4
Je me suis trompé le constructeur n'est pas une methode donc on ne peut
pas l'appeler dans un autre, faut jouer avec les valeurs par défaut
pour factoriser le code.
Pour appeler le constructeur dans un autre c'est comme un appel de méthode.



Pour appeler le constructeur d'une base:



class A

{

public:

A(int n);

};



class B : public A

{

public:

B() : A(0)

{

}



};



Sans A(0) c'est le constructeur par défaut de A qui aurait été appelé.
Messages postés
442
Date d'inscription
jeudi 4 avril 2002
Statut
Membre
Dernière intervention
11 août 2008

Donc ce que tu me préconise c'est d'avoir une méthode auxilaire appelée par les deux constructeurs ?

neodelphi
Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
4
Par exemple, et tu peux la mettre en private si elle n'a pas lieu de faire partie de l'interface publique.
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
C'est ce je ferais
Messages postés
442
Date d'inscription
jeudi 4 avril 2002
Statut
Membre
Dernière intervention
11 août 2008

Ok merci pour vos réponse, je ferai donc avec une méthode auxiliaire en privée, ce que j'avait effectué en attendant pour continuer mon projet.

Merci et bon coding :)