Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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++ 更改参数顺序可解决链接器错误_C++ - Fatal编程技术网

C++ 更改参数顺序可解决链接器错误

C++ 更改参数顺序可解决链接器错误,c++,C++,我在代码中发现了一些奇怪的行为这只是一个片段: void StringSplit(string b,char splitchar,vector<string>& a) {} int main(int argc, const char * argv[]) { // insert code here... string b; getline(cin, b); vector<string> result1; StringSpli

我在代码中发现了一些奇怪的行为这只是一个片段:

void StringSplit(string b,char splitchar,vector<string>& a) {}

int main(int argc, const char * argv[]) {
    // insert code here...
    string b;
    getline(cin, b);
    vector<string> result1;
    StringSplit(b, ' ', result1);
    std::cout << result1[0];
    return 0;
}
为什么会这样

,简言之,它表示架构x86_64有1个重复符号

错误的根本原因是重复的符号


函数有两个定义,相同的名称,相同的签名。如果函数定义在标题中,则需要内联和/或使用include保护。如果不是,如果它们是不同的函数,那么您应该为它们选择不同的名称

如果它们是相同的函数,那么在单个cpp中有定义,在头中有声明

我在项目的另一个文件中包含一个具有相同功能的文件


考虑到它们是您的项目,您也可以探索名称空间来帮助解决此问题。

我猜您的更改强制进行了重建,这本来可以解决问题,如果没有原始问题的解决方案,几乎不可能诊断。你确定这不仅仅是重建效果吗?不是问题,而是std::cout@Niall太长了,简而言之,它说架构x86有一个重复符号\u 64你有两个函数定义,相同的名称,相同的签名。如果函数定义位于标题中,则需要内联和/或包含保护。如果不是,如果它们是不同的函数,那么您应该为它们选择不同的名称。如果它们是相同的函数,那么在单个cpp中有定义,在头中有声明。
void StringSplit(char splitchar,string b,vector<string>& a) {}

int main(int argc, const char * argv[]) {
    // insert code here...
    string b;
    getline(cin, b);
    vector<string> result1;
    StringSplit(' ', b, result1);
    std::cout << result1[0];
    return 0;
}