1

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

std::cout << converter();

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

using namespace Ccon::converter;

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

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

请指教。

谢谢

4

1 回答 1

-2

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

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

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

于 2013-03-02T08:20:10.480 回答