没有用于呼叫&&的匹配功能来自

时间:2017-03-26 14:12:00

标签: c++ arrays class

所以我一直在尝试在main中测试我的代码,但我无法解决此错误

在我的.h文件中,我已声明此方法

int common(string words[], int count[], int n);

我的.cpp文件

int testclass::common(string words[], int count[], int n){
//code
}

此方法将字符串和int数组作为参数,并根据已知数组和数量n填充它们。

对于我的主要功能,我有类似的东西

testclass test
string testwords[4] = {"0", "0", "0", "0"};
int testcount[4] = {0, 0, 0, 0};
test.common(testwords[4], testcount[4], 4);

我还试图在没有初始化的情况下放入数组

string testwords[4];
int testcount[4];

我无法解决此错误

In function 'int main()*':
error: no matching function for call to 'testclass::common(std::__cxx11::string&, int &, int)'
test.common(testwords[4], testcount[4], 3);
                                         ^
//in cpp file
note: candidate: int testclass::common(std::__cxx11::string*, int*, int)
int testclass::common(string words[], string count[], int n)
    ^
note: no known conversion for argument 1 from 'std::cxx11::string {aka std::__cxx11::basic_string<char>}' to 'std::__cxx11::string* {aka std::__cxx11::basic_string<char>*}'

2 个答案:

答案 0 :(得分:0)

testwords[4]传递给该函数会尝试从数组中选择一个单词。并且不受限制。

要将数组作为指针(或x[])传递,只需给出数组的名称:

test.common(testwords, testcount, 4);

几乎在所有情况下,数组名称都会衰减为指针,包括此。

答案 1 :(得分:0)

你正在制作的错误是在函数调用中 test.common(testwords [4],testcount [4],4); 试试这个 test.common(testwords,testcount,4); 但是您需要将数组大小作为不同的参数传递