/* IFT1166 - démonstration #7 - exercice 14 05-novembre -2005 v1.01 M.Lokbani Solutionnaire et commentaires. 30-octobre -2005 v1.00 M.Lokbani à partir de B.Johnston. contact: lokbani@iro.umontreal.ca Cet exercice a pour but de vous entrainer dans la recherche des erreurs de syntaxe dans le cadre d'une déclaration classe. Copyright (C) 2000-2005 Université de Montréal Département d'informatique et de Recherche Opérationnelle Mohamed Lokbani -- Tous Droits Réservés -- All Rights Reserved -- */ #include enum Couleur {rouge, bleu, vert}; class Balle{ private: Couleur teint; public: Balle() {teint=vert;} // QuelleCouleur() {cout << teint;} // void QuelleCouleur() {cout << teint;} void QuelleCouleur() {std::cout << teint;} //} }; //enum Couleur {rouge, bleu, vert}; //int main(); int main() { Balle MaBalle; MaBalle.QuelleCouleur(); return 0; } /* >g++ -Wall -pedantic -Os -c demo7exo14sol.cpp -o demo7exo14sol.o demo7exo14sol.cpp:24: error: `Couleur' does not name a type demo7exo14sol.cpp:24: error: extra semicolon demo7exo14sol.cpp:26: error: ISO C++ forbids declaration of `QuelleCouleur' with no type demo7exo14sol.cpp: In constructor `Balle::Balle()': demo7exo14sol.cpp:25: error: `teint' undeclared (first use this function) demo7exo14sol.cpp:25: error: (Each undeclared identifier is reported only once for each function it appears in.) demo7exo14sol.cpp:25: error: `vert' undeclared (first use this function) demo7exo14sol.cpp: In member function `int Balle::QuelleCouleur()': demo7exo14sol.cpp:26: error: `cout' undeclared (first use this function) demo7exo14sol.cpp:26: error: `teint' undeclared (first use this function) demo7exo14sol.cpp:26: warning: no return statement in function returning non-void demo7exo14sol.cpp: At global scope: demo7exo14sol.cpp:28: error: `vert' used prior to declaration demo7exo14sol.cpp:28: error: multiple types in one declaration demo7exo14sol.cpp:30: error: expected unqualified-id before '{' token demo7exo14sol.cpp:30: error: expected `,' or `;' before '{' token >Exit code: 1 La ligne 24: Couleur teint; La classe Balle ne sait pas encore le sens de Couleur. Elle a besoin de le savoir avant l'utilisation mais pas après (la ligne 28). La ligne 30: Il manque ";" à la fin de } associée à la classe. La ligne 33: il y a ";" de trop à la fin de la méthode main. La ligne : La méthode "QuelleCouleur()" n'est pas un constructeur, nous avons donc besoin de préciser le type de retour. La ligne : Pour pouvoir utiliser "cout", nous avons besoin de using namespace std sinon std::cout Le constructeur Balle et la méthode QuelleCouleur sont déclarés "private" et sont donc innaccessibles à partir de la méthode "main". Erreur donc, il faudra les mettre "public" pour permettre l'accès. */