所以我一直在尝试在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>*}'
答案 0 :(得分:0)
将testwords[4]
传递给该函数会尝试从数组中选择一个单词。并且不受限制。
要将数组作为指针(或x[]
)传递,只需给出数组的名称:
test.common(testwords, testcount, 4);
几乎在所有情况下,数组名称都会衰减为指针,包括此。
答案 1 :(得分:0)
你正在制作的错误是在函数调用中 test.common(testwords [4],testcount [4],4); 试试这个 test.common(testwords,testcount,4); 但是您需要将数组大小作为不同的参数传递