调用没有命名空间的方法

时间:2013-03-02 08:10:41

标签: c++

我只是在浏览C ++代码而且我注意到了一些东西。在源文件main.cpp

std::cout << converter();

然后我找了转换器定义。没有命名空间和类名。然后我在tool.cpp中看到了

using namespace Ccon::converter;

该定义位于Ccon.cpp文件中。

为什么main.cpp可以调用converter()

请告知。

由于

1 个答案:

答案 0 :(得分:-2)

请参阅此链接以查找依赖于参数的名称:http://en.wikipedia.org/wiki/Argument-dependent_name_lookup

当编译器无法找到不合格的converter()时,它将查找可用的命名空间,并在名称和签名匹配时使用它们。

在这种情况下,main.cpp包含我想要的Ccon.h头文件,它定义了这个命名空间,因此它会查找带有void参数的converter()