Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.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++ 为什么我的main无法识别头文件和源文件2中的函数?_C++ - Fatal编程技术网

C++ 为什么我的main无法识别头文件和源文件2中的函数?

C++ 为什么我的main无法识别头文件和源文件2中的函数?,c++,C++,主要是调用ParseDeclars函数(pc,buffer)。该函数在XMLParser.hpp中声明并定义为XMLParsser.cpp,但当我在主函数中调用该函数时,编译器会给出错误“没有匹配的函数用于调用'ParseDeclars'” //XMLParser.hpp #包括“XMLParser.hpp” void ParseDeclars(std::vector pc,std::vector buffer); //XMLParser.cpp #包括“XMLParser.hpp” void

主要是调用ParseDeclars函数(pc,buffer)。该函数在XMLParser.hpp中声明并定义为XMLParsser.cpp,但当我在主函数中调用该函数时,编译器会给出错误“没有匹配的函数用于调用'ParseDeclars'”

//XMLParser.hpp
#包括“XMLParser.hpp”
void ParseDeclars(std::vector pc,std::vector buffer);
//XMLParser.cpp
#包括“XMLParser.hpp”
void ParseDeclars(std::vector::iterator pc,std::vector buffer){
std::vector::迭代器endpc=std::find(pc,buffer.end(),“>”);
if(endpc==buffer.end())
出口(1);
pc=std::next(endpc);
pc=std::find_if_not(pc,buffer.end(),[](char c){return std::isspace(c);});
}

错误:没有用于调用“ParseDeclars”的匹配函数。

存在类型不匹配,您使用两个向量参数声明ParseDeclars,然后使用迭代器和向量定义它。@Zlatomir--并不是要单独列出您,但是关于代码的注释最好是针对代码编写的,而不是针对人。“代码声明…并用…”定义它。这减少了自我参与。
//srcreport.cpp
ParseDeclars(pc, buffer);
//XMLParser.hpp
#include "XMLParser.hpp"
void ParseDeclars(std::vector<char> pc, std::vector<char> buffer);
//XMLParser.cpp
#include "XMLParser.hpp"


void ParseDeclars(std::vector<char>::iterator pc, std::vector<char> buffer){
    std::vector<char>::iterator endpc = std::find(pc, buffer.end(), '>');
    if (endpc == buffer.end())
        exit(1);
    pc = std::next(endpc);
    pc = std::find_if_not(pc, buffer.end(), [] (char c) { return std::isspace(c); });
}