C++ 重载方法-(错误C2664:无法从向量转换为T)
我试图从另一个重载成员调用重载方法。我得到一个错误C2664:无法将参数2从std::vector转换为PK_BODY_T 代码:C++ 重载方法-(错误C2664:无法从向量转换为T),c++,header-files,overloading,forward-declaration,C++,Header Files,Overloading,Forward Declaration,我试图从另一个重载成员调用重载方法。我得到一个错误C2664:无法将参数2从std::vector转换为PK_BODY_T 代码: 看起来好像第一个方法在这里试图调用自己,而不是第二个重载方法。如何强制它使用第二种方法?C++文件是自上而下编译的。从top方法的有利位置来看,它无法“看到”第二个方法,因为它还没有被编译,因为第二个方法在第一个方法之后 您必须在header.h文件中声明方法,或在.cpp文件顶部向前声明方法 您没有显示函数是如何声明的,以及在什么范围内一个函数是否隐藏另一个函数
看起来好像第一个方法在这里试图调用自己,而不是第二个重载方法。如何强制它使用第二种方法?C++文件是自上而下编译的。从top方法的有利位置来看,它无法“看到”第二个方法,因为它还没有被编译,因为第二个方法在第一个方法之后 您必须在header.h文件中声明方法,或在.cpp文件顶部向前声明方法
您没有显示函数是如何声明的,以及在什么范围内一个函数是否隐藏另一个函数 但无论如何,只需在第一个重载函数中声明第二个重载函数
std::vector<PK_BODY_t*> FillHoles(std::vector<std::vector<PK_EDGE_t>> holes, PK_BODY_t inputBody)
{
std::vector<PK_BODY_t*> FillHoles(std::vector<std::vector<PK_EDGE_t>> holes, std::vector<PK_BODY_t*> inputBody);
//...
我有什么问题吗,或者你确实通过值传递向量向量…?对于代码问题,你应该有一个答案,你已经在3分钟后回答了你自己的问题。你为什么要把它贴出来,而不是先自己寻找答案?
std::vector<PK_BODY_t*> FillHoles(std::vector<std::vector<PK_EDGE_t>> holes, PK_BODY_t inputBody)
{
std::vector<PK_BODY_t*> FillHoles(std::vector<std::vector<PK_EDGE_t>> holes, std::vector<PK_BODY_t*> inputBody);
//...