Bonjour,

je bute sur une erreur signalée par le compilateur de Visual C++ 2008 express.

Pour me faire la main j'essaie d'implémenter une classe chaine de caractères.
Voici le fichier d'entête chaine.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
#pragma once
#include <iostream>
using namespace std;
 
class Chaine
{
public:
    Chaine(void);
    Chaine(const char*);
    void Affiche(void);
    ostream & operator<<(ostream & o,const Chaine & c);
    ~Chaine(void);
private:
    char* ch;
    int longueur;
};
et dans chaine.cpp, j'ai redéfini l'opérateur << ainsi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
std::ostream & operator << (std::ostream & flux, const Chaine & s){
    return flux; // juste pour tester la syntaxe
}
dans mon main, j'ai ceci (entre autre):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
    Chaine ch1("Coucou");
    cout << ch1;
et le compilateur me pointe dans le fichier d'entête la ligne de la redéfinition de l'opérateur << avec le message suivant:
error C2804: trop de paramètres pour l'opérateur binaire 'operator <<'

Je n'en vois pas l'origine. Merci de m'éclairer.