//file.h
namespace first
{
namespace second
{
void foo();
}
}
//file.c
using namespace first::second;
void foo()
{
...
}
//main.c
using namespace first::second;
int main()
{
foo();
}
上面的代码不起作用,因为编译器无法识别 foo()。我的错误在哪里?
最佳答案
试试这个:
这会将实现放入命名空间
//file.c
namespace first
{
namespace second
{
void foo()
{
...
}
}
}
这明确告诉 main 在哪里可以找到 foo:
//main.c
int main()
{
::first::second::foo();
}
关于c++ - 如何在不同文件中使用嵌套命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17754760/