J'ai une classe Parcelle dont voici la définition :Cette classe contient une fonction ami qui me permet d'écrire dans la console.
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
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 ?
Je vous met l'implémentation de la classeobj\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 ===|
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
Je vous remercie pour l'aide précieuse que vous pourrez m'apporter
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; }
Partager