Bonjour,
J'obtient des tas de warning suivant sous codeblock, gcc
warning: `class envel' has virtual functions but non-virtual destructor
C'est effectivement le cas, mais quel est le probéme au just
Merci
Version imprimable
Bonjour,
J'obtient des tas de warning suivant sous codeblock, gcc
warning: `class envel' has virtual functions but non-virtual destructor
C'est effectivement le cas, mais quel est le probéme au just
Merci
Salut,
C'est comme le port salu, c'est marqué dessus :D
L'avertissement t'indique que tu as une classe visiblement destinée au polymorphisme à laquelle il manque une chose pourtant très utile: le destructeur virtuel, et voici pourquoi
Juste une question,
(c'est un peu HS mais je profite du sujet)
le destructeur de B n'est pas virtuel, mais j'ai quand même le destructeur de C affiché (à cause du destructeur virtuel de A?).Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 #include <iostream> class A { public: virtual A::~A() {puts("ARGH");} }; class B : public A { public: B::~B() {puts("BARGH");} }; class C : public B { public: C::~C() {puts("CAAAAAA");} }; int main() { A *a = new C; delete a; puts(""); B *b = new C; delete b; return 0; }
Ce comportement me convient, mais est-ce normal?
C'est juste une petite précision dont j'ai besoin :P
Coyotte507