string convert(string name)
{
string code = name[0];
...
}
我从这行开始“没有从'value_type'(又名'char')转换为'string'(又名'basic_string,allocator>')”。
如果我将其更改为:
string convert(string name)
{
string code;
code = name[0];
...
}
然后它有效。 任何人都可以解释原因吗?
答案 0 :(得分:2)
类std :: string(相应地,std :: basic_string)具有赋值运算符
basic_string& operator=(charT c);
此代码片段中使用了此赋值运算符
string convert(string name)
{
string code;
code = name[0]; // using of the assignment operator
...
}
但是,该类没有可以编写的适当构造函数
string code = name[0];
你可以像
一样写string code = { 1, name[0] };
或喜欢
string code( 1, name[0] );
使用构造函数
basic_string(size_type n, charT c, const Allocator& a = Allocator());