Je veux définir une constante en C++ pour être visible dans plusieurs fichiers source. Je peux l'image de l'une des manières suivantes pour définir dans un fichier d'en-tête:
#define GLOBAL_CONST_VAR 0xFF
int GLOBAL_CONST_VAR = 0xFF;
- Une fonction returing la valeur (par exemple,
int get_GLOBAL_CONST_VAR()
) enum { GLOBAL_CONST_VAR = 0xFF; }
const int GLOBAL_CONST_VAR = 0xFF;
-
extern const int GLOBAL_CONST_VAR;
et dans un fichier sourceconst int GLOBAL_CONST_VAR = 0xFF;
Option (1) - n'est certainement pas l'option que vous souhaitez utiliser
L'Option (2) - la définition de l'instance de la variable dans chaque fichier objet en utilisant le fichier d'en-tête
Option (3) - IMO est plus de mise à mort dans la plupart des cas
Option (4) - dans de nombreux cas, peut-être pas bon puisque enum n'a pas de type de béton (C++0X ajout de la possibilité de définir le type)
Ainsi, dans la plupart des cas, j'ai besoin de choisir entre (5) et (6). Mes questions:
- Que préférez-vous (5) ou (6)?
- Pourquoi (5) est ok, alors que (2) ne l'est pas?