La question qu'il faut que tu te poses, c'est pourquoi ça marche. Là, tu sauras pourquoi ça ne marche plus
.
Pour pouvoir utiliser une variable, il faut qu'elle ait été déclarée avant.
Pour qu'une variable existe dans le programme, il faut qu'elle ait été définie, une seule fois dans tout le programme.
Pour les variables globales, la bonne manière de les déclarer, c'est :
extern string ma_variable_globale
(pour une chaîne)
Une variable peut être déclarée plusieurs fois, du moment que les déclarations sont identiques (ie toujours le même type).
L'erreur que tu as, c'est que à un endroit du code, tu utilises la variable sans qu'elle ait été déclarée. Quand tu compiles un fichier, les instructions sont lues dans l'ordre, donc si la déclaration ne figure pas dans ce fichier (ou dans un fichier inclus), alors, la variable n'est pas déclarée.
Pour définir la variable, il faut le faire une seule fois, donc dans un .cpp, de la manière suivante :
string ma_variable_globale;
Et c'est l'éditeur de lien qui se chargera de faire le lien entre les déclarations et la définition.
Partager