Bonjour,
Je suis un debutant en C++. Je souhaite enrichir mes connaissances informatiques en fesant de C++. Mon objectif est de finir le C++ avant les vacances de Noel. Mon probleme c'est que je ne suis pas capable de faire une auto-destruction virtuel d'une classe. Lorsque je test mon code, mon IDE affiche qu'il y a une Exception non gérée. Quelqu'un peux m'aider?
armeAssaut.h
Fusil.h
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 #ifndef DEF_ARMEASSAUT #define DEF_ARMEASSAUT #include <iostream> #include "Fusil.h" class armeAssaut : public Fusil { protected: double m_tauxBalle; public: virtual void information() const; armeAssaut(); virtual ~armeAssaut(); }; #endif
Sniper.h
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 #ifndef DEF_FUSIL #define DEF_FUSIL class Fusil { protected: double m_dommage; double m_distance; double m_mobilite; public: virtual void information() const; Fusil(); virtual ~Fusil(); }; void afficher(Fusil const& x); #endif
armeAssaut.cpp
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 #ifndef DEF_SNIPER #define DEF_SNIPER #include <iostream> #include "Fusil.h" class Sniper : public Fusil { protected: double m_precision; public: virtual void information() const; Sniper(); virtual ~Sniper(); }; #endif
Fusil.cpp
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
22 #include "armeAssaut.h" #include "Fusil.h" #include <iostream> using namespace std; void armeAssaut::information() const { cout << "Arme d'assault" << endl; } armeAssaut::armeAssaut() { m_dommage = 0.74; m_distance = 0.74; m_mobilite = 0.65; m_tauxBalle = 0.50; } armeAssaut::~armeAssaut() { delete this; }
main.cpp
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
22
23
24
25
26 #include "Fusil.h" #include <iostream> using namespace std; Fusil::Fusil() { m_dommage = 0; m_distance = 0; m_mobilite = 0; } void Fusil::information() const { cout << "Arme" << endl; } void afficher(Fusil const& x) { x.information(); } Fusil::~Fusil() { delete this; }
Sniper.cpp
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 #include <iostream> #include "Fusil.h" #include "armeAssaut.h" #include "Sniper.h" using namespace std; int main() { Fusil *x(0); x = new armeAssaut; x->information(); delete x; system("pause"); return 0; }
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
22 #include "Sniper.h" #include "Fusil.h" #include <iostream> using namespace std; void Sniper::information() const { cout << "Sniper" << endl; } Sniper::Sniper() { m_dommage = 0.89; m_distance = 1; m_mobilite = 1; m_precision = 0.87; } Sniper::~Sniper() { delete this; }
Partager