调用没有命名空间的方法 我只是浏览了一个C++代码,我注意到了一些东西。在源文件main.cpp中 std::cout << converter();

调用没有命名空间的方法 我只是浏览了一个C++代码,我注意到了一些东西。在源文件main.cpp中 std::cout << converter();,c++,C++,定义位于Ccon.cpp文件中 为什么main.cpp可以调用converter() 请告知 谢谢请查看此链接以查找与参数相关的名称: 当编译器无法找到不合格的converter()时,它将查找可用的名称空间,并在名称和签名匹配时使用它们 在本例中,main.cpp应该包含定义此名称空间的Ccon.h头文件,因此它会查找带有无效参数的converter()。搜索“依赖参数的查找”读一本关于C++的好书是我的建议,使用C++的命名空间C++ >代码> >代码>。在代码< >主< /代码>中,必须有

定义位于Ccon.cpp文件中

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

请告知


谢谢

请查看此链接以查找与参数相关的名称:

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


在本例中,main.cpp应该包含定义此名称空间的Ccon.h头文件,因此它会查找带有无效参数的
converter()

搜索“依赖参数的查找”读一本关于C++的好书是我的建议,使用C++的命名空间C++ >代码> >代码>。在代码< >主< /代码>中,必须有一个函数(或类)<代码>转换器< /代码>的定义。您是否检查了所有包含文件(以及它们的递归包含文件)?这是否适用于此处?转换器没有参数?按照您解释依赖于参数的查找的方式,它与参数无关。事实上,如果这是真的,名称空间就没有任何意义了。我在函数签名中提到了签名,函数的名称,加上输入参数的类型和输出类型。任何参数都不是签名。是的,jogojapan,如果你读过,它说名称空间变得不那么严格,因为ADL,这是对ADL的批评
using namespace Ccon::converter;