我只是在浏览一个 C++ 代码,我注意到了一些东西。在源文件 main.cpp
std::cout << converter();
然后我寻找转换器定义。没有命名空间和类名。然后我在tool.cpp中看到了
using namespace Ccon::converter;
该定义位于 Ccon.cpp 文件中。
为什么 main.cpp 可以调用converter()
?
请指教。
谢谢
我只是在浏览一个 C++ 代码,我注意到了一些东西。在源文件 main.cpp
std::cout << converter();
然后我寻找转换器定义。没有命名空间和类名。然后我在tool.cpp中看到了
using namespace Ccon::converter;
该定义位于 Ccon.cpp 文件中。
为什么 main.cpp 可以调用converter()
?
请指教。
谢谢
请参阅此链接以查找依赖于参数的名称:http ://en.wikipedia.org/wiki/Argument-dependent_name_lookup
当编译器无法找到不合格converter()
的名称时,它将寻找可用的名称空间并在名称和签名匹配时使用它们。
在这种情况下, main.cpp 包括我想的 Ccon.h 头文件,它定义了这个命名空间,所以它会查找converter()
带有 void 参数的 a 。