Bonjour à tous,
Après avoir essayé de chercher d'où pouvait venir mon erreur de compilation je me suis décidé à poster sur ce forum en espérant que vous allez pouvoir me débloquer.

L'erreur de compilation se produit lorsque l'on essaye de surcharger l'opérateur d'affichage <<
avec le prototype : ostream& operator<<(ostream&, const Prisonnier&);

L'erreur étant la suivante :
"erreur: expected constructor, destructor, or type conversion before ‘&’ token"


Voici ma classe :

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
#ifndef PRISONNIER_H_INCLUDED
#define PRISONNIER_H_INCLUDED
 
#include <string>
#include <iostream>
 
class Prisonnier
{
 
private :
    int annee;
    bool coupPrecedentAdversaire;
 
protected :
    std::string nom;
    int nbCoups;
    int score;
public :
 
    virtual bool reponse() = 0;
    Prisonnier(const std::string);
    virtual ~Prisonnier();
    void itererScore(int nombre);
    void effacerAnnee();
    void ajouterAnnee(int years);
 
    //setter
    void initialiserNbCoups(int nombre);
    void initialiserCoupPrecedent(bool cp);
 
    // Accesseurs
    int recupererAnnee();
    std::string recupererNom();
    int recupererScore();
    bool recupererCoupPrecAdversaire();
    //affichage
    virtual void afficher(std::ostream &out)const=0;
 
    // test
    virtual void test(){}
};
  ostream& operator<<(ostream&, const Prisonnier&);  // C'EST CETTE LIGNE QUI NE MARCHE PAS
 
 
#endif // PRISONNIER_H_INCLUDED