Salut!
Voilà mon problème:
J'ai une classe (qui s'occupe de la partie gestion des pieces d'un hopital en mode texte toute simple) avec en private :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
enum piec{
                   reception=0, 
                   cabinet_generaliste=1,
                   infirmerie=2,
                   WC=3,
                   salle_operation=4,
                   radiologie=5,
                   soins_intensifs=6,
                   repos=7};
Pour gérer le nombre de pieces (qui pourrait être important) bah je fais appel à un vector (et j'veux utiliser que sa pour l'instant) et pour construire, je demande à l'utilisateur quel type de piece il veut créer. De la, des variables globales sont incrémentées et des valeurs leurs sont ajoutées:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
static int nb_reception=0; 
static int nb_cabinet_generaliste=0; 
static int nb_infirmerie=0; 
static int nb_WC=0; 
static int nb_salle_operation=0; 
static int nb_radiologie=0;
static int nb_soins_intensifs=0; 
static int nb_repos=0; 
static int rennovations=0;
static int superficie=0;
static int reputation_pieces=0;
(pour l'instant je les utilise pas toutes).
Mais, lorsque je veux supprimer une pièce, bah je demande son numéro, et supprime la case qui y correspond dans mon vector. Là, bah faut que je fasse l'inverse de créer. Et j'arrive (enfin) au problème: mon code a une erreur que jarrive, mais vraiment pas du tout à corrgier:
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
47
void supprimer_piece()
        {
             switch(piec) //premiere erreur ici
                  {
 
                      case 0: { //seconde ici
                           nb_reception--; 
                           superficie-=6; 
                           reputation_pieces-=5; 
                           break;}
                      case 1:{
                           nb_cabinet_generaliste--; 
                           superficie-=10; 
                           reputation_pieces-=75; 
                           break;}
                      case 2:{
                           nb_infirmerie--; 
                           superficie-=7; 
                           reputation_pieces-=30; 
                           break;}
                      case 3: {
                           nb_WC--; 
                           superficie-=20; 
                           reputation_pieces-=10; 
                           break;}
                      case 4: {
                           nb_salle_operation--; 
                           superficie-=50; 
                           reputation_pieces-=250; 
                           break;}
                      case 5: {
                           nb_radiologie--; 
                           superficie-=30; 
                           reputation_pieces-=170; 
                           break;}
                      case 6: {
                           nb_soins_intensifs--; 
                           superficie-=75; 
                           reputation_pieces-=200; 
                           break;}
                      case 7:{
                           nb_repos--; 
                           superficie-=150; 
                           reputation_pieces-=135; 
                           break;}
                  }
        }
Et cette saleté de compilateur me met:
Le compilateur me dit:
--E:\Guillaume\Classe piece.cpp In member function `void Piece::supprimer_piece()':

--108 E:\Guillaume\Classe piece.cpp syntax error before `;' token

--E:\Guillaume\Classe piece.cpp At global scope:

--111 E:\GuillaumeClasse piece.cpp parse error at end of saved function text
Pour vous aider, ma fonction qui n'est pas membre de ma classe (void supprimer_piece() l'etait) et qui s'occupes de supprimer une piece de vector :
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
 
{
system("cls");
     int numero=0;
     char choix;
     cout<<"Entrez le numero (de la liste des pieces) : "<<flush;
     fflush(stdin);
     cin>>numero;
     if(numero>=liste_pieces.size())
     {
         cout<<"Cette) piece) n\'existe pas "<<endl; 
         system("PAUSE>nul");
     }
     else
     {
         liste_pieces[numero].afficher_piece();
         cout<<"Voulez-vous licencier cette piece? (o/n) : "<<flush;
         fflush(stdin);
         cin>>choix;
         cout<<endl;
         if((choix=='o')||(choix=='O'))
         {
                liste_pieces[numero].supprimer_piece();
                for(int i=numero;i<liste_pieces.size();i++)
                {
                        liste_pieces[i]=liste_pieces[i+1];
                }
               liste_pieces.resize(liste_pieces.size()-1);
         }
         else
          cout<<"La piece n\'a pas ete detruite"<<endl; 
          system("PAUSE>nul");
     } 
}
Voilà, alors j'ai essayé de remplacer par des 'if', c'est pareil, memes erreurs, j'ai aussi essayé de mettre des { et } aux switch, marche pas nan plus ...
J'en ai deduis que sa venait pas du contenu de la fonction ...


Merci de m'aider, ces erreurs m'ont vraiment foutu les b**les aujourd'hui .