J'ai une classe Parcelle dont voici la définition :
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
#ifndef PARCELLE_H
#define PARCELLE_H
 
#include <iostream>
 
#include <string>
 
 
 
class Parcelle
{
public:
    Parcelle();
    Parcelle(std::string section, int numero);
    void afficher(std::ostream &out);
 
    friend std::ostream& operator <<( std::ostream&, const Parcelle& );
 
protected:
    std::string pe_section;
    int pe_numero;
private:
};
 
 
#endif // PARCELLE_H
Cette classe contient une fonction ami qui me permet d'écrire dans la console.
Le problème est que lorsque je veux lier mon programme il ne me trouve pas cette fonction ami.
Mais que ce passe t il ?

obj\Debug\main.o||In function `main'
I:\cada\main.cpp|10|undefined reference to `operator<<(std::ostream&, Parcelle const&)'|
||=== Build finished: 1 errors, 0 warnings ===|
Je vous met l'implémentation de la 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
46
#include "Parcelle.h"
 
#include <iostream>
 
 
 
/** @brief Parcelle
  *
  * @todo: document this function
  */
 Parcelle::Parcelle()
{
 
}
 
/** @brief Parcelle
  *
  * @todo: document this function
  */
 Parcelle::Parcelle(std::string section, int numero) : pe_section(section),pe_numero(numero)
{
 
}
 
 
/** @brief afficher
  *
  * @todo: document this function
  */
void Parcelle::afficher(std::ostream &out)
{
out<<"Section : "<<pe_section<<" numero : "<<pe_numero<<std::endl;
}
 
 
 
 
/** @brief opérateur de sortie
  *
  *
  */
std::ostream& operator<<( std::ostream& out, Parcelle& terrain )
{
    terrain.afficher(out) ; // <- Changement ici
    return out;
}

et le main

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
#include "Parcelle.h"
 
using namespace std;
 
int main()
{
    Parcelle azer("AC",1);
    cout<<azer<<endl;
    return 0;
}
Je vous remercie pour l'aide précieuse que vous pourrez m'apporter