C++ error: no matching function for call to XXX问题 20
编译的时候发现一个很奇怪的问题:一个类的一个接口函数原型是这样intfunc(constchar*str,int&value);但是,我调用的时候:intiValue;t...
编译的时候发现一个很奇怪的问题:
一个类的 一个接口函数原型是这样 int func(const char* str,int& value);
但是,我调用的时候:
int iValue;
tmp->func("XXXX",iValue);
其中tmp是一个类对象,
编译报错匹配不上那个func。
什么情况下才可能出现这种情况啊,
找了下代码中其他地方,有同样的调用却没事。
头文件包含了
有大神有类似的经验吗
报错说:
error: no matching function for call to ‘ A::func(const char [5], int&)’
。
如果入参传"XXXXX"这样,就会提示const char[N]不匹配,
如果入参传一个前面已经定义的char*,就会提示const char*&不匹配。
不知道为什么传入普通的指针,但是提示是指针的引用,进而导致匹配不到函数。
试了下新增函数,任何对象的指针都会提示是指针的引用,然后匹配不上入参是指针的那个 展开
一个类的 一个接口函数原型是这样 int func(const char* str,int& value);
但是,我调用的时候:
int iValue;
tmp->func("XXXX",iValue);
其中tmp是一个类对象,
编译报错匹配不上那个func。
什么情况下才可能出现这种情况啊,
找了下代码中其他地方,有同样的调用却没事。
头文件包含了
有大神有类似的经验吗
报错说:
error: no matching function for call to ‘ A::func(const char [5], int&)’
。
如果入参传"XXXXX"这样,就会提示const char[N]不匹配,
如果入参传一个前面已经定义的char*,就会提示const char*&不匹配。
不知道为什么传入普通的指针,但是提示是指针的引用,进而导致匹配不到函数。
试了下新增函数,任何对象的指针都会提示是指针的引用,然后匹配不上入参是指针的那个 展开
展开全部
感觉你代码中的tmp并不是含有int func(const char* str,int& value)这个函数的类,请检查一下tmp是否是class A实例的指针。
追问
就是类实例。
刚试了下,又加了个函数大概这样:func2(B* pB,int& i);
调用的时候会报错说,no match func for func2(B*& pB,int& i);
其中B是一个类,就是编译的时候,指针变成指针的引用了,
调用的时候仅仅是传进去了个指针而已啊- -好神奇
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我也遇到了一样的问题,请问怎么搞定的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询