Salut tout le monde j'ai un petit probleme dans mon code source j’essaie de supprime une case d'un tableau dynamique de pointeur sur une class mais ca marche pas apparemment
main.c++:
fichier.c++
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 "vehicule.h" #include <vector> using namespace std; int main() { Garage a; vector<Vehicule*>listeVehicule; listeVehicule.push_back(new Voiture(15000,2000,5)); listeVehicule.push_back(new Moto(5000,2009,150)); listeVehicule.push_back(new Moto(10000,1980,200)); listeVehicule.push_back(new Camion(200000,1999,700)); listeVehicule[0]->affiche(); listeVehicule[2]->affiche(); a.suprimer(listeVehicule); listeVehicule[3]->affiche(); for(int i=0;i<listeVehicule.size();i++) { delete listeVehicule[i]; listeVehicule[i]=0; } return 0; }
fichier.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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 #include"vehicule.h" #include <iostream> #include <vector> using namespace std; Vehicule::Vehicule() { } Vehicule::Vehicule(int prix,int annee):m_prix(prix),m_annee(annee) {} void Vehicule::affiche()const { cout << "Ceci est un vehicule coutant " << m_prix << " euros." << endl; } Vehicule::~Vehicule() {} Moto::Moto(int prix,int annee,double vitesse):Vehicule(prix,annee),m_vitesse(vitesse) {} void Moto::affiche()const { cout <<endl<<"Ceci est une moto allant a " << m_vitesse << " km/h et coutant " << m_prix << " euros." << endl; cout<<"Date de fabrication:"<<m_annee; } Moto::~Moto() {} Voiture::Voiture(int prix,int annee,int porte):Vehicule(prix,annee),m_porte(porte) {} void Voiture::affiche()const { cout << "Ceci est une voiture avec " << m_porte << " portes et coutant " << m_prix << " euros." << endl; cout<<"Date de fabrication:"<<m_annee; } Voiture::~Voiture() {} Camion::Camion(int prix,int annee,double poids):Vehicule(prix,annee),m_poids(poids) {} void Camion::affiche()const { cout <<endl<<"Ceci est une camion allant a " << m_poids << " kg et coutant " << m_prix << " euros." << endl; cout<<"Date de fabrication:"<<m_annee; } Camion::~Camion() {} Garage::Garage() { } void Garage::ajouterVoiture(int porte,int prix,int annee,std::vector<Vehicule*>&listeVehicule) { } void Garage::suprimer(std::vector<Vehicule*>&listeVehicule) { listeVehicule.pop_back(); listeVehicule[3]->affiche(); } Garage::~Garage() { }
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 #ifndef VEHICULE_H_INCLUDED #define VEHICULE_H_INCLUDED #include<vector> class Vehicule { public: Vehicule(); Vehicule(int prix,int annee); virtual void affiche()const; virtual ~ Vehicule(); protected: int m_prix,m_annee; }; class Moto:public Vehicule { public: Moto(int prix,int annee,double vitesse); virtual void affiche()const; virtual ~ Moto(); private: double m_vitesse; ; }; class Voiture:public Vehicule { public: Voiture(int prix,int annee,int porte); virtual void affiche()const; virtual ~ Voiture(); private: int m_porte; }; class Camion:public Vehicule { public: Camion(int prix,int annee,double poids); virtual void affiche()const; virtual~Camion(); private: double m_poids; }; class Garage { public: Garage(); void ajouterVoiture(int porte,int prix,int annee,std::vector<Vehicule*>&listeVehicule); virtual void suprimer(std::vector<Vehicule*>&listeVehicule); virtual ~Garage(); private: }; #endif // VEHICULE_H_INCLUDED
Partager