编译器说没有找到类中的方法。 整个错误消息是 找不到功能
common :: base :: CategoryIdCache :: addNewCid(std :: string,common :: base :: eSqlCatalog&,std :: vector,std :: allocator>,std :: allocator,std: :allocator>>>&,std :: vector,std :: allocator>,std :: allocator,std :: allocator>>>&)
候选人
common :: base :: CategoryIdCache :: addNewCid(std :: string&,common :: base :: eSqlCatalog&,std :: vector,std :: allocator>,std :: allocator,std :: allocator>>>&,std :: vector,std :: allocator>,std :: allocator,std :: allocator>>>&)
答案 0 :(得分:3)
有几个原因导致这种情况发生:
所以
struct X
{
void foo(std::string& x);
};
//implementation
void X::foo(std::string x); //wrong - different signature
或
struct X
{
void foo(std::string& x);
};
//
int main()
{
X x;
x.foo("some string");
}
答案 1 :(得分:0)
通过引用传递意味着您将变量的地址(引用)传递给函数,而传递值意味着您正在通过相关变量复制该时刻包含的值,然后将其传递给函数。 / p>
与传递值的方式相比,您必须以不同的方式声明原型或函数。