Các mã sau đây làm việc một cách chính xác:biến cục bộ bên ngoài cho những biến toàn cục bên trong namespace
file1.cpp
//global variable
int g_myvar1 = 5;
file2.cpp
int myfunc()
{
extern int g_myvar1;
g_myvar1++
}
Làm thế nào tôi có thể làm file2.cpp nếu file1 .cpp như sau:
file1.cpp
namespace myns
{
//global variable
int g_myvar1 = 5;
}
CHÚ THÍCH 1, phần sau đây cung cấp lỗi biên dịch về việc sử dụng không hợp lệ tên "đủ điều kiện" của GCC 4.7 ". Tôi đã thử 'sử dụng không gian tên' mà không có may mắn.
int myfunc()
{
extern int myns::g_myvar1;
g_myvar1++
}
NOTE2, Công trình sau đây, nhưng tôi chỉ tìm định nghĩa biến cục bộ.
namespace myns
{
//global variable
extern int g_myvar1;
}
int myfunc()
{
myns::g_myvar1++
}
+1 cho cách sử dụng mới của việc sử dụng từ khóa. Nhưng điều này vẫn cần khai báo "namespace mynm {extern int g_myvar1;}" trước void f() – Yousf
@Yousf: Có, tốt hơn là * khai báo * chúng trong tệp '.h', và * define * chúng trong'. tệp cpp'. – Nawaz