[C++] dérivation+ constructeur

dérivation+ constructeur [C++] - Programmation

Marsh Posté le 07-03-2002 à 23:03:20    

class A
  |
class B
  |    
class C    
 
Si l'on instancie un objet C dans quel ordre les constructeurs seront-ils construit? C puis B puis A ou l'inverse?

Reply

Marsh Posté le 07-03-2002 à 23:03:20   

Reply

Marsh Posté le 07-03-2002 à 23:12:17    

A puis B puis C...
et les destructeurs en ordre inverse

Reply

Marsh Posté le 07-03-2002 à 23:27:31    

BENB a écrit a écrit :

A puis B puis C...
et les destructeurs en ordre inverse  




 
t'es sûr de toi, ça sert à quoi alors de passer les paramètres au constructeur d'une classe mère????
C::C(par1,..):B(par1,...)

Reply

Marsh Posté le 07-03-2002 à 23:30:27    

weblook$ a écrit a écrit :

 
 
t'es sûr de toi, ça sert à quoi alors de passer les paramètres au constructeur d'une classe mère????
C::C(par1,..):B(par1,...)  




 
ben justement à pouvoir appeller le ctor de la classe mere avant celui de la fille

Reply

Marsh Posté le 07-03-2002 à 23:42:34    

yes ;)

Reply

Marsh Posté le 08-03-2002 à 09:07:09    

weblook$ a écrit a écrit :

 
 
t'es sûr de toi, ça sert à quoi alors de passer les paramètres au constructeur d'une classe mère????
C::C(par1,..):B(par1,...)  




Parameteres que tu passes avant le corps de ton constructeur au passage !
 
L'important est de savoir que le constructeur des classes meres est executes avant celui des classes filles, maintenant il est fort possible que ce soit le constructeur de la classe fille qui appelle celui de la classe mere, mais cela ne change en rien l'ordre d'execution
 
ET globalement Toutes les initialisations des classes de bases sont realises lorsque le constructeur de la classe fille est execute, et heureusement !

Reply

Marsh Posté le 08-03-2002 à 10:36:24    

weblook$ a écrit a écrit :

 
t'es sûr de toi, ça sert à quoi alors de passer les paramètres au constructeur d'une classe mère????
C::C(par1,..):B(par1,...)  




ben ca sert a passer des parametres..
rien de plus
 
LEGREG

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed