[c++] Heritage de classes

Heritage de classes [c++] - C++ - Programmation

Marsh Posté le 12-03-2003 à 09:02:05    

Si une classe B est heritee de la classe A , lorsque je declare un objet B , la fonction creatrice de A sera-t-elle appelee?
 
si
 

Code :
  1. class A
  2.      {
  3.       int i;
  4.       A(){i=0}
  5.      }
  6. class B: public A
  7.       {
  8.        .....
  9.       }
  10. B truc;


 
est-ce que truc.i va valloir 0?
sinon comment faire?
 
merci davance.
sui desole j'ai pas pu tester moi meme , je n'ai pas de compilateur sous la main.


---------------
Do you serve a purpose,Or purposely serve?
Reply

Marsh Posté le 12-03-2003 à 09:02:05   

Reply

Marsh Posté le 12-03-2003 à 09:14:33    

je pense que oui puisque la construction d'un objet de type B va appeler la construction d'un objet de type A. Il te faudrait peut etre aussi une methode int GetI()


Message édité par polo021 le 12-03-2003 à 09:27:04
Reply

Marsh Posté le 12-03-2003 à 11:10:36    

Il faut l'appeler toi-même
 

Code :
  1. class B: public A
  2.      {
  3.      B() : A() {}
  4.      }

Reply

Marsh Posté le 12-03-2003 à 11:54:31    

t sur? l'appel du constructeur de la classe mere n'est pas implicite?

Reply

Marsh Posté le 12-03-2003 à 12:45:16    

il l'est quand il y a un constructeur par défaut

Reply

Marsh Posté le 12-03-2003 à 13:15:32    

++Taz a écrit :

il l'est quand il y a un constructeur par défaut


Je suis d'accord !
 
De toutes facons tu peux facilement verifier avec des cout ... [:spamafote]


---------------
get amaroK plugin
Reply

Marsh Posté le 12-03-2003 à 14:14:49    

merci a tous , c bon g retrouvé mon pc g testé , en effet le constructeur de A est bien appelé part defaut


---------------
Do you serve a purpose,Or purposely serve?
Reply

Marsh Posté le 12-03-2003 à 22:10:08    

djfm a écrit :

merci a tous , c bon g retrouvé mon pc g testé , en effet le constructeur de A est bien appelé part defaut


Méfie toi, ce n'est pas parce que tu testes avec ton compilateur que c'est forcément du C++ standard (tous n'ont pas un surtout parfait du C++). L'idéal c'est de voir ce qu'en dit un bon bouquin. Ou si tu aimes la méthode empirique, vérifier avec plusieurs compilateurs peux te donner une indication.

Reply

Marsh Posté le 12-03-2003 à 22:11:37    

c'est du C++ standard.
 
Stroustrup 12.2.2


Message édité par Taz le 12-03-2003 à 22:21:23
Reply

Sujets relatifs:

Leave a Replay

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