还在苦苦敲代码开发APP?你out啦! 试试积木搭建APP吧~

error C2664: “find_char”: 不能将参数 1 从“const char [14]”转换为“std::string &

来源:清泛原创     2016-10-24 17:12:47    人气:     我有话说( 0 人参与)

出错代码:#include <iostream>#include <string>using std::cout;using std::endl;using std::string; const引用形参举例 非const...

出错代码:
#include <iostream>
#include <string>
using std::cout;
using std::endl;
using std::string;
//const引用形参举例
//非const引用形参只能与完全同类型的非const对象关联
std::size_t find_char(string &s,char c)
{
   string::size_type i = 0;
   while(i != s.size() && s[i] != c)
       ++i;
   if(i == s.size())
       return string::npos;
   else
       return i;
}
int main(int argc, char *argv[])
{
    //字面值常量为const对象,调用出错
    if(find_char("Hello, world.",'.') != string::npos)
    {
        cout<<"a sentence."<<endl;
    }
    return 0;
}
解决方法:如果函数不修改相应实参,应该将引用形参定义为const引用,这样字面值常量、const对象也能调用此函数,避免不必要的限制。

error C2664 find_char

注:本文为本站或本站会员原创优质内容,版权属于原作者及清泛网所有,
欢迎转载,转载时须注明版权并添加来源链接,谢谢合作! (编辑:admin)
分享到: