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;
}