从匿名命名空间调用命名命名空间中的函数

时间:2017-09-17 01:12:11

标签: c++

在文件中有一个匿名命名空间和一个命名空间。匿名命名空间有一些内部函数,不应该公开,命名空间有一些需要访问的重载函数。

//test.cpp

namespace
{
void func() {}
void crazy()
{
   func(a);
}
}

namespace useful
{
void func(int a)
{
    //something
}
}

有人可以建议我如何访问下面写的命名空间吗?可以从匿名命名空间访问命名命名空间的函数吗?

1 个答案:

答案 0 :(得分:1)

您可以在使用和定义之前在相关命名空间中声明:

//test.cpp

namespace useful {
void func(int);
}

namespace
{
void func() {}
void crazy()
{
    useful::func(3);
}
}

namespace useful
{
void func(int a)
{
    //something
}
}