Il seguente codice funziona correttamente:extern variabile locale per la variabile globale all'interno dello spazio dei nomi
file1.cpp
//global variable
int g_myvar1 = 5;
file2.cpp
int myfunc()
{
extern int g_myvar1;
g_myvar1++
}
Come posso fare file2.cpp se file1 .cpp è la seguente:
file1.cpp
namespace myns
{
//global variable
int g_myvar1 = 5;
}
NOTA 1, ciò che segue dà errore di compilazione su GCC 4.7 "uso non valido del nome qualificato". Ho provato a "usare namespace" senza fortuna.
int myfunc()
{
extern int myns::g_myvar1;
g_myvar1++
}
NOTA2, Il seguente funziona, ma sto cercando solo la definizione di variabile locale.
namespace myns
{
//global variable
extern int g_myvar1;
}
int myfunc()
{
myns::g_myvar1++
}
+1 per il nuovo utilizzo dell'uso della parola chiave. Ma questo richiede ancora la dichiarazione di "namespace mynm {extern int g_myvar1;}" prima di void f() – Yousf
@Yousf: Sì, è meglio * dichiararli * nel file '.h' e * definirli * in'. file cpp'. – Nawaz