Bonjour,
Cette question fait plus ou moins suite a ma precedente question sur l'utilisation simultanee de plusieures class.
Probl de syntax decl de pl class
Je travaille pour le moment sur un code qui comprends plusieures class et ou une classe (A) utilise entre autre des instances d'une autre class (B)pour initialiser ses propre composants.
Pour l'instant je me limite au composant "t" de la class A qui est un pointeur
sur un array char.
Je veux ecrire une surcharge d'op. << pour imprime le contenu des carac. d'une instance et je l'ai redige de cette facon.
Pour ce code jerecois le message d'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 //Surcharge de l'operateur cout<< ostream& operator << (ostream& flux, const morceau& M){ const char* titr; cout << "\n Caracteristique du morceau : "; cout << "\n Titre : "; titr = M.get_Titre(); //Ligne 64 flux << titr; cout << "\n Duree : "; return flux; }//Fin Surcharge cout
Comme dit je n'arrive pas a comprendre ce que je dois faire avec ca.Compilateur: Default compiler
Building Makefile: "C:\Dev-Cpp\Devoir_3\Makefile.win"
Exécution de make...
make.exe -f "C:\Dev-Cpp\Devoir_3\Makefile.win" all
g++.exe -c morceauImpl.cpp -o morceauImpl.o -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev-Cpp/include/c++/3.4.2/backward" -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"C:/Dev-Cpp/include/c++/3.4.2" -I"C:/Dev-Cpp/include"
morceauImpl.cpp: In function `std::ostream& operator<<(std::ostream&, const morceau&)':
morceauImpl.cpp:64: error: passing `const morceau' as `this' argument of `const char* morceau::get_Titre()' discards qualifiers
make.exe: *** [morceauImpl.o] Error 1
Exécution terminée
Bien sur t est private
J'ai un selecteur ecrit ainsi avec son implementation
J'ai essaye la solution naive en ecrivant const partout ou cela avait l'air raisonnable, mais bon voila
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 //retour du titre du morceau Selecteur public dans classe morceau const char* get_Titre(void); et ici son implementation //retour du titre du morceau const char* morceau::get_Titre(void){ return t; } //Ici le constructeur utilise //Impl. construc. par init. morceau::morceau(char* ti, duree du){ t = ti; d = du; }
D'avance merci
marc_3
Partager