Bonjour je suis un debutant en C++ j'essaye de revoir mes bases j'ai volu tester le cas suivant
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
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"; } };
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 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 A::const B::const destruc B destruc A
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part A ra = B();
merci
merci
Partager