2010-08-09 4 views

Répondre

4

extern string name; dans les autres fichiers, puis de lier les objets ensemble.

0

vous pouvez essayer

inline string GetName(){return "MyName";} 

vous pouvez simplement le mettre dans un en-tête

cette façon, vous n'avez pas à vous soucier de mettre la définition dans un fichier .cpp aléatoire

vous

pourrait également faire

#define NAME "MyName" 

est généralement mauvaise, d'abord, parce que le compil Er pourrait se battre un peu plus pour trouver que la chaîne est la même chaîne utilisée partout. Il y a aussi d'autres problèmes avec les macros ect (comme l'espace de noms)

la seule bonne chose à propos de cette méthode est qu'elle facilite le collage des chaînes, en raison de la façon dont le compilateur concatène automatiquement les chaînes littérales adjacentes après la macro-expansion (le tout étape de préprocesseur)

-à-dire, vous pouvez aller:

printf("My name is " NAME); 
0

Je pense que vous pouvez faire un fichier de configuration et faire un #define pour ce exemple

#define NAME "MYName" 


of make a char * a = "MYName"; 

Et inclure config.cpp dans chaque fichier devrait fonctionner correctement.

+0

char * = "MYName" est un code C++ mal formé. –

+0

@Maxim: c'est bien formé, mais déconseillé. Essayer d'utiliser le pointeur non-const pour modifier le littéral de chaîne est mal formé. –

+0

Vous avez raison. J'ai oublié que la compatibilité C l'exige. –

Questions connexes