如何将char []转换为字符串&

时间:2011-08-28 10:30:07

标签: c++ string std

我有一个方法setValue(string& val),我需要调用一些默认值 我想这样称呼:

setValue("");
setValue("random value");

但是我在g ++中遇到以下错误:no matching function to call setValue(const char [10])

关于如何在创建临时字符串对象旁边做到这一点的任何想法?
它有效,但我觉得不方便:

string temp("random value");
setValue(temp);

2 个答案:

答案 0 :(得分:11)

修改您的功能以获取const string &

答案 1 :(得分:6)

问题是string&不会绑定到临时对象,只会绑定到非const 命名的对象(标准语言中的非const lvalues )。您必须将对象命名为传递给函数,就像使用temp变量一样。

一种解决方法是使用const字符串引用并直接将字符串文字传递给它。这是有效的,因为1)string有一个非显式构造函数,它接受const char* 2)const char [10]会衰减到const char*