在程序的主文件中,我有以下声明
int main()
{
Customer c;
Part p;
Builder b;
auto partsVec = readpartFile();
auto customerVec = readcustomerFile();
auto builderVec = readbuilderFile();
fexists("Parts.txt");
complexity(c, partsVec);
robotComplexity(partsVec,customerVec);
writeFile(buildAttempt(b, complexity(c, partsVec), variability(customerVec, builderVec)));
}
我的头文件包含以下内容
vector<Part> readpartFile();
vector<Customer> readcustomerFile();
vector<Builder> readbuilderFile();
float complexity(const Customer& c, const std::vector<Part>& parts);
void robotComplexity(vector<Part> vecB, vector<Customer> vecC);
double variability(const vector<Customer>& customerList, const vector<Builder>& builderList);
vector<double> buildAttempt(Builder b, double variaiblity, double complexityRobot);
void writeFile(vector<double> build);
除robotComplexity外,所有功能都链接在一起。我在main中对此函数的声明产生了以下错误。
一个以上的重载函数“robotComplexity”实例与参数列表匹配:-函数“robotComplexity(const std::vector>&parts,const std::vector>&customers)”-函数“robotComplexity(std::vector> vecB ,std::vector> vecC)“-参数类型为:(std::vector>,std::vector>)
即时通讯不知道为什么即时通讯收到此错误或如何解决
最佳答案
header 中的声明与定义(也可以用作声明)之间不匹配:
void robotComplexity(vector<Part> vecB, vector<Customer> vecC);
void robotComplexity(const vector<Part>& vecB, const vector<Customer>& vecC);
参数名称可能不匹配,而类型名称不能匹配,否则,您将创建另一个重载。
关于c++ - C++创建头文件时,多个重载函数实例与参数列表匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61299926/