Bonjour � tous,
Je suis en train d'�crire un programme, et j'ai un petit probl�me avec la surcharge de l'op�rateur << de ma classe h�t�rog�ne
j'ai une classe h�t�rog�ne d�fini comme suit:
et un programme de test :
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 class Systeme : public vector<Oscillateur* > { // (...) public: //surcharge externe friend ostream& operator<<(ostream& out, Systeme& obj) { out<<"Le systeme est compose de "<<obj.size()+1<<" objet(s) indépendant(s):"<<endl<<endl; for (unsigned int i(0); i<obj.size(); ++i) { out<<"Oscillateur "<<j<<":"<<endl <<(obj)[i]<<endl<<endl; } return out; } };
Quand je compile et que je lance le programme, il me donne:
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 // (...) int main() { Systeme test; Vecteur o1(0.,1.,0.); Vecteur a1(3.,4.,5.); test.push_back(new Ressort (o1, a1, 0.,0., -5., 10., 20., 4.)); Vecteur o2(2.,5.,4.); Vecteur a2(9.,6.,8.); test.push_back(new Ressort (o2, a2, 0., 0., 6., 70., 10., 27.)); Vecteur o3(6.,1.,5.); Vecteur a3(6.,4.,75.); test.push_back(new Pendule (o3, a3, 0., 0., -1., 43., 50.)); cout<<test<<endl; return 0; };
L'erreur vient de toute �vidence de la ligne :Le systeme est compose de 5 objet(s) ind�pendant(s):
Oscillateur 1:
0x80500c0
Oscillateur 2:
0x8050238
Oscillateur 3:
0x8050360Les constructeurs et surcharge externe des classes Vecteur, Oscillateur, Ressort, Pendule �tant corrects (j'ai des programmes de test rien que pour eux
Code : S�lectionner tout - Visualiser dans une fen�tre � part <<(obj)[i]<<endl<<endl;), �a ne peut venir que de l�, mais je ne comprend pas comment faire comprendre qu'il faut utiliser l'op�rateur de sortie de Ressort (si la i-�me ligne est un ressort) et pas un autre.
Quelqu'un peut m'aider? �a fait plusieurs heures que je susi dessus, et l�, m�me apr�s pas mal de recherches sur le web, je ne trouve rien.
(Note: le destructeur s'occupe de lib�rer la m�moire demand�e par les new)
Partager