Bonjour à tous,
J'ai essayé de composer un petit programme très simple mais je suis confronté à un problème avec l'opérateur de surcharge << qui devrait afficher le contenu des données dans le tableau *tableau de la classe Tableau.
J'ai 2 messages d'erreurs dans la fonction membre :
friend ostream& operator << (ostream&, const& Tableau)
Quelqu'un aurait-il l'amabilité d'analyser le programme et de voir où est l'erreur.
Le programme fonctionne correctement sauf aux endroits ou les lignes de codes sont en gras.
Merci d'avance.
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 #include <iostream.h> #include <stdlib.h> #include <iomanip.h> class Tableau{ private: int *tableau; int max; int nombre_element; public: Tableau(int n); Tableau(const Tableau&); ~Tableau(); void initialisation(int); void affiche(int); void introduction_donnees(int); friend ostream& operator << (ostream&, const& Tableau); }; Tableau::Tableau(int n = 0){ max = n; nombre_element = 0; tableau = new int[n]; }; Tableau::Tableau (const Tableau& s) { max = s.max; nombre_element = s.nombre_element; tableau = new int[max]; for (int i=0; i < max; i++) tableau[i] = s.tableau[i]; }; Tableau::~Tableau(){ delete []tableau; }; void Tableau::initialisation(int n){ int i; for(i = 0; i < n; i++){ tableau[i] = 0; }; } void Tableau::affiche(int n){ int i; for(i = 0; i < n; i++){ cout<<Tableau::tableau[i]<<" "; }; }; void Tableau::introduction_donnees(int n){ int i, donnee; for(i = 0; i < n; i++){ cout<<"donnee numero "<<i+1<<":"; cin>>donnee; tableau[i] = donnee; cout<<endl; }; }; ostream& operator << (ostream& o, const Tableau& a){ for (int i= 0; i < a.max ; i++){ o << a.tableau[i] << endl; return o; }; }; int main(){ int i,n; cout<<"veuillez introduire la taille de votre tableau sous forme d'un entier : "; cin>>n; cout<<""<<endl; Tableau *un = new Tableau(n); un->initialisation(n); cout<<endl; cout<<"affichage des valeurs contenues dans le tableau"<<endl; un->affiche(n); cout<<""<<endl; un->introduction_donnees(n); un->affiche(n); cout<<""<<endl; cout<<"affichage avec operateur de surcharge <<"<<endl; for(i = 0; i < n; i++){ cout << un->tableau[i]; cout << endl; }; return 0; }
Partager