Poniższy kod działa poprawnie:extern zmiennej lokalnej do globalnej zmiennej wewnątrz przestrzeni nazw
file1.cpp
//global variable
int g_myvar1 = 5;
file2.cpp
int myfunc()
{
extern int g_myvar1;
g_myvar1++
}
Jak mogę zrobić file2.cpp jeśli plik1 .cpp jest następująca:
file1.cpp
namespace myns
{
//global variable
int g_myvar1 = 5;
}
UWAGA 1, poniżej przedstawiono błąd kompilacji w GCC 4.7 "nieprawidłowe użycie kwalifikowanej nazwy". Próbowałem "używać przestrzeni nazw" bez powodzenia.
int myfunc()
{
extern int myns::g_myvar1;
g_myvar1++
}
UWAGA 2, Następujące prace, ale szukam tylko zmiennej lokalnej.
namespace myns
{
//global variable
extern int g_myvar1;
}
int myfunc()
{
myns::g_myvar1++
}
+1 za nowe użycie słowa kluczowego. Ale to nadal wymaga deklaracji "namespace mynm {extern int g_myvar1;}" przed void f() – Yousf
@Yousf: Tak, lepiej jest * deklarować * je w pliku '.h' i * definiować * je w'. plik cpp. – Nawaz