Bonjour,
j'ai besoin d'aide pour ce petit code en C++ sur l'héritage et surtout sur l'héritage multiple
voici mon code:

Donc dans ce code, mixte hérite de immeuble de bureau et immeuble de logement, immeuble de bureau et immeuble de logement héritent de immeuble, j'ai surement un gros problème au niveau de l'héritage multiple.
Merci pour votre aide.


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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
 
 
#include <iostream>   
#include <ostream>   
#include <stdlib.h>   
#include <typeinfo>   
#include <vector>   
#include <string>   
 
 
using namespace std;   
 
 
 
class Immeuble{   
 
        protected:    
                  int annee_construction;   
                  string description_etat;   
                  string adresse;     
                  int i;   
 
         public:   
                  Immeuble(int annee, string descript, string add, int ii);   
                  virtual int ajout_contenu(int a)=0;   
                  int getI();   
                  ~Immeuble(void);   
};   
 
Immeuble::Immeuble(int annee, string descript, string add, int ii){   
         annee_construction=annee;   
         description_etat=descript;   
         adresse=add;   
         i=ii;   
}   
 
Immeuble::~Immeuble(void){   
 
}   
 
int Immeuble::ajout_contenu(int a){   
 
}   
 
int Immeuble::getI(){   
         return i;   
}   
 
 
class Industriel:public Immeuble{   
         public:   
                  int ajout_contenu(int a);   
                  Industriel(int annee, string descript, string add, int ii);   
};   
 
Industriel::Industriel(int annee, string descript, string add, int ii):Immeuble(annee, descript, add, ii){   
 
}   
 
int Industriel::ajout_contenu(int a){   
         i+=a;   
}   
 
////////////////////////////////////////////////////////:   
class Immeuble_de_logement:public Immeuble{   
         public:   
                  int ajout_contenu(int a);   
                  Immeuble_de_logement(int annee, string descript, string add, int ii);   
};   
 
Immeuble_de_logement::Immeuble_de_logement(int annee, string descript, string add, int ii) : Immeuble(annee, descript, add, ii){   
 
}   
 
int Immeuble_de_logement::ajout_contenu(int a){   
         i+=a;   
}   
 
 
class Immeuble_de_bureau:public Immeuble{   
         public:   
                  int ajout_contenu(int a);   
                  Immeuble_de_bureau(int annee, string descript, string add, int ii);   
};   
 
Immeuble_de_bureau::Immeuble_de_bureau(int annee, string descript, string add, int ii) : Immeuble(annee, descript, add, ii){   
 
}   
 
 
int Immeuble_de_bureau::ajout_contenu(int a){   
 i+=a;   
}   
 
 
class Mixte:public Immeuble_de_logement, public Immeuble_de_bureau{   
                 public:   
                  int ajout_contenu1(int a);   
                  Mixte(int annee, string descript, string add, int ii);   
};   
 
Mixte::Mixte(int annee, string descript, string add, int ii):Immeuble_de_logement(annee, descript, add, ii),Immeuble_de_bureau(annee, descript, add, ii){   
 
}   
 
int Mixte::ajout_contenu1(int a){   
         Immeuble_de_logement::ajout_contenu(a);   
}   
 
 
int main (){   
 
         cout << "\nTest:\nCreation Mixte\n";    
 
         string *des=new string;   
         string *ad=new string;   
         int ann;   
 
         cout << "\nAnnee: ";   
         cin >> ann;   
         cout << "\nDescription: ";   
         cin >> *des;   
         cout << "\nAdresse: ";   
         cin >> *ad;   
 
         Mixte *m = new Mixte(ann,*des,*ad,0);   
 
         cout << "\nVerification:\n\tI: " << m->getI();   
 
         return 0;   
 
}