![](/img/trans.png)
[英]error: redefinition of 'var' with a different type: 'char' vs 'string' (aka 'basic_string<char, char_traits<char>, allocator<char> >')
[英]no viable conversion from 'value_type' (aka 'char') to 'string' (aka 'basic_string<char, char_traits<char>, allocator<char> >')
string convert(string name)
{
string code = name[0];
...
}
我从这一行中得到“没有从 'value_type'(又名 'char')到 'string'(又名 'basic_string, allocator >')的可行转换”。
如果我将其更改为:
string convert(string name)
{
string code;
code = name[0];
...
}
然后它起作用了。 谁能解释为什么?
类 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] );
使用构造函数
basic_string(size_type n, charT c, const Allocator& a = Allocator());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.