Bonjour je suis un debutant en C++ j'essaye de revoir mes bases j'ai volu tester le cas suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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