没有从 'value_type'(又名 'char')到 'string'(又名 '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];
...
}
我从这一行得到 "no viable conversion from 'value_type' (aka 'char') to 'string' (aka 'basic_string, allocator >')"。
如果我把它改成:
string convert(string name)
{
string code;
code = name[0];
...
}
然后就可以了。
谁能解释一下为什么?
Classstd::string(对应std::basic_string)有赋值运算符
basic_string& operator=(charT c);
并且此代码段中使用了此赋值运算符
string convert(string name)
{
string code;
code = name[0]; // using of the assignment operator
...
}
但是 class 没有您可以编写的合适的构造函数
string code = name[0];
你可以这样写
string code( 1, name[0] );
使用构造函数
basic_string(size_type n, charT c, const Allocator& a = Allocator());
string convert(string name)
{
string code = name[0];
...
}
我从这一行得到 "no viable conversion from 'value_type' (aka 'char') to 'string' (aka 'basic_string, allocator >')"。
如果我把它改成:
string convert(string name)
{
string code;
code = name[0];
...
}
然后就可以了。 谁能解释一下为什么?
Classstd::string(对应std::basic_string)有赋值运算符
basic_string& operator=(charT c);
并且此代码段中使用了此赋值运算符
string convert(string name)
{
string code;
code = name[0]; // using of the assignment operator
...
}
但是 class 没有您可以编写的合适的构造函数
string code = name[0];
你可以这样写
string code( 1, name[0] );
使用构造函数
basic_string(size_type n, charT c, const Allocator& a = Allocator());