Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 重载方法-(错误C2664:无法从向量转换为T)_C++_Header Files_Overloading_Forward Declaration - Fatal编程技术网

C++ 重载方法-(错误C2664:无法从向量转换为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文件顶部向前声明方法 您没有显示函数是如何声明的,以及在什么范围内一个函数是否隐藏另一个函数

我试图从另一个重载成员调用重载方法。我得到一个错误C2664:无法将参数2从std::vector转换为PK_BODY_T

代码:


看起来好像第一个方法在这里试图调用自己,而不是第二个重载方法。如何强制它使用第二种方法?

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);
    //...