héritage et constructeur et éventuellement méthodes
Bonjour,
J'ai appris le langage C++ il y a très longtemps. Et à mon grand regret je l'ai en partie oublié. J'ai fait du java à la place. J'ai décidé de redevenir bon en C++. Et donc voici une petite question qui me chagrine. En java, l'appel au constructeur parent ou à la méthode parent surchargée est manuelle .
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
class A
{
public A(int x){...}
public int hello(){...}
}
class B extends A
{
public B(int y,int z){ ...super(y+z);... }
public int hello(){... super.hello(); ... }
} |
En C++ dans mes souvenirs, l'appel au constructeur est automatique. Il me semble que pour le constructeur c'est automatiquement du plus ancien parent au plus récent. Et pour le destructeur c'est le plus récent enfant (soi) au plus ancien parent. Corriger moi si je me trompe.
et donc je me demande comment on traduirait le code ci-dessus en C++
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
class A
{
public A(int x){...}
public int hello(){...}
}
class B: public A
{
public:
//soit
B(int y,int z):
A(???) // et si on a des traitements a faire en plus dans l'enfant avant d'appeller le parent (1)
{ ... }
//soit
B(int y,int z)
{ ...A::A(y+z);... } // mais apparement ca marcher pas (2)
int hello()
{... A::hello(); ... }
} |
Dans le (1) je me demande comment on fait des pré-traitement avant d'appeler le constructeur parent. On comment on lui transmet ces arguments.
Dans le (2) apparement l'appelle au constructeur A::A cree un objet temporaire A qui n'est pas this.
Merci d'avance de vos réponses.