You*_*usf 8 c++ namespaces extern
以下代码正常工作:
file1.cpp
//global variable
int g_myvar1 = 5;
Run Code Online (Sandbox Code Playgroud)
file2.cpp
int myfunc()
{
extern int g_myvar1;
g_myvar1++
}
Run Code Online (Sandbox Code Playgroud)
如果file1.cpp如下,我该怎么做file2.cpp:
file1.cpp
namespace myns
{
//global variable
int g_myvar1 = 5;
}
Run Code Online (Sandbox Code Playgroud)
注1,以下内容给出了GCC 4.7"无效使用限定名称"的编译错误.我试过'使用命名空间'也没有运气.
int myfunc()
{
extern int myns::g_myvar1;
g_myvar1++
}
Run Code Online (Sandbox Code Playgroud)
注2,以下工作,但我正在寻找唯一的局部变量定义.
namespace myns
{
//global variable
extern int g_myvar1;
}
int myfunc()
{
myns::g_myvar1++
}
Run Code Online (Sandbox Code Playgroud)
使用using:
void f()
{
using myns::g_myvar1;
++g_myvar1;
}
Run Code Online (Sandbox Code Playgroud)
您已在命名空间中的文件中声明变量(使用extern关键字),并在文件中定义它们。并在您想要使用变量的地方包含头文件。.hmyns.cpp