FAQ C++ BuilderConsultez toutes les FAQ

Nombre d'auteurs : 60, nombre de questions : 670, dernière mise à jour : 21 novembre 2010  Ajouter une question

 

Cette F.A.Q. a été réalisée à partir des questions fréquemment posées sur le forum C++ Builder de developpez.com et de l'expérience personnelle des auteurs.

Nous tenons à souligner que cette F.A.Q. ne garantit en aucun cas que les informations qu'elle propose soient correctes. Les auteurs font le maximum, mais l'erreur est humaine. Cette F.A.Q. ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez devenir rédacteur, contactez pottiez

Nous espérons que cette F.A.Q. saura répondre à un maximum de vos questions. Nous vous souhaitons une bonne lecture.

L'équipe C++ Builder de Developpez.

Commentez cette FAQ : Commentez


SommaireLangageTypes de données (23)
précédent sommaire suivant
 

Si vous écrivez une méthode qui compare une valeur avec différentes constantes, évitez de comparer directement avec des constantes littérales, mais utilisez des énumérations.

Code c++ : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void GestionErreur(int error) 
{ 
    switch(error) 
    { 
    case 0: cerr << "Erreur de syntaxe\n";  
            break; 
    case 1: cerr << "Erreur : tentative de division par zéro\n"; 
            break; 
    case 2: cerr << "Erreur fatale. Le programme se termine.\n"; 
            exit(1); 
            break; 
    default:cerr << "Erreur inconnue." 
            break; 
    } 
}
Dans cet exemple, la variable entière error est directement comparée à des constantes : 0, 1, 2... Définissez plutôt des constantes à l'aide d'une énumération, ce qui permet de bien visualiser à quoi correspondent ces constantes, et d'être sûr de ne pas intervertir les traitements dépendant de celles-ci :

Code c++ : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
enum Erreur {SYNTAX_ERROR, DIVISION_0_ERROR, FATAL_ERROR}; 
//... 
void GestionErreur(Erreur error) 
{ 
      switch(error) 
      { 
      case SYNTAX_ERROR:    cerr << "Erreur de syntaxe\n";  
                            break; 
  
      case DIVISION_0_ERROR:cerr << "Erreur : tentative de division par zéro\n"; 
                            break; 
  
      case FATAL_ERROR:     cerr << "Erreur fatale. Le programme se termine.\n"; 
                            exit(1); 
                            break; 
  
      default:    cerr << "Erreur inconnue." 
                            break; 
      } 
}
En voyant ce code, vous n'avez pas besoin de vous demander à quelle erreur correspond telle constante puisque vous n'avez pas à connaître les valeurs des constantes (théoriquement, on a SYNTAX_ERROR = 0, DIVISION_0_ERROR = 1 et FATAL_ERROR = 2). Si vous souhaitiez définir les valeurs des constantes, initialisez-les dans l'énumération :

Code c++ : Sélectionner tout
1
2
3
enum Erreur {SYNTAX_ERROR = 11 ,  
             DIVISION_0_ERROR = 12,  
             FATAL_ERROR = 13};
La méthode de gestion des erreurs étant écrite, pour l'appeller, il suffit de passer l'une des constantes en argument :

Code c++ : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
//... 
int a, b; 
cout << "Entrez deux nombres :\n"; 
cin >> a >> b; 
  
if (b)// Le diviseur n'est pas nul 
     cout << double(a)/double(b); 
else    // Le diviseur est nul 
     GestionErreur(DIVISION_0_ERROR); 
//...

Mis à jour le 1er septembre 2004 Geronimo

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2020 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.