Constructeur destructeur et heritage
Bonjour je suis un debutant en C++ j'essaye de revoir mes bases j'ai volu tester le cas suivant
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| #include <iostream>
using namespace std;
class A
{
public:
A(){ cout << "A::const\n"; };
~A(){cout<< "destruc A \n";};
void F1() { cout << "A::F1()\n"; }
virtual void F2() { cout << "A::F2()\n"; }
};
class B : public A
{
public:
B() { cout << "B::const\n"; }
~B(){cout<< "destruc B \n";};
void F1() { cout << "B::F1()\n"; }
void F2() { cout << "B::F2()\n"; }
}; |
dans ma fonction main je crée un objet du type b comme ceci B b; j'ai la sortie suivante
Code:
1 2 3 4 5
|
A::const
B::const
destruc B
destruc A |
j'aimerai savoir pourquoi j'ai un appel de constructeur et destructeur de la classe A sachant que j'ai crée l'objet avec le constructeur de la classe B ?
est ce qu'il y a un appel implicite des fonction constructeur/destructeur de la classe A ? y a t il un moyen de l'eviter ?
et si j'ajoute à mon main()
j'obtiens
merci
merci