c ++"没有匹配的函数来调用

Fle*_*515 1 c++ arrays pointers parameter-passing

当我尝试传入一个数组作为参数时,我得到:

"No matching function to call to ' table::retrieve(const char[16], item&, int)'
Run Code Online (Sandbox Code Playgroud)

我试图用这个函数调用

program.reference.retrieve("Abecean Longfin", program.client_item, 1);
Run Code Online (Sandbox Code Playgroud)

功能是

int table::retrieve(char item_in[],item*item_list, int name_flag)
Run Code Online (Sandbox Code Playgroud)

我确信这是一件我不理解的简单事情,但我是新手.

Pup*_*ppy 5

你的电话失败的真正原因是因为你正在通过item&你的功能所需的地方item*.您的代码违反了字符串上的const正确性,但在C++ 03中,它们有一个特殊的规则,使其合法.

  • 我该怎么知道?显示的代码只说了两件事:它是一个`item&`而原型是`item*`. (3认同)
  • @Als:无论是价值还是参考都是无关紧要的.重要的是它不是指针. (2认同)