Bonjour.
J'ai une question très bête concernant les méthodes et l'héritage.
Soit une classe A avec les méthodes :
et une classe B dérivant de A avec les méthodes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 A(); ~A(); void fonction1(); virtual void fonction2(); void fonction3A();
1) Pourriez-vous me dire quels fonction est appelée dans les cas suivants () :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 B(); ~B(); void fonction1(); virtual void fonction2(); void fonction3B();
2) Maintenant, un peu plus sioux, supposons que le constructeur de A fasse appel à fonction1() (de A donc). Si le constructeur de B est laissé vide que se passera-t-il ? (est-ce que fonction1() sera appelée et si oui est-ce que ce sera l'implémentation de A ou de B)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 A *a = new A(); B *b = new B(); b->fonction1(); // implémentation de A ou de B ? a->fonction2(); // implémentation de A ou de B ? b->fonction2(); // implémentation de A ou de B ?
3) Dans l'implémentation du constructeur de B, comment faire si je veux que le constructeur de A soit appelé et qu'ensuite certaines fonctions propres à B soient appelées ?
Merci
Partager