Lin*_*oln 7 c++ string type-conversion char
string convert(string name)
{
string code = name[0];
...
}
Run Code Online (Sandbox Code Playgroud)
我从这一行中得到“没有从 'value_type'(又名 'char')到 'string'(又名 'basic_string, allocator >')的可行转换”。
如果我将其更改为:
string convert(string name)
{
string code;
code = name[0];
...
}
Run Code Online (Sandbox Code Playgroud)
然后它起作用了。谁能解释为什么?
类 std::string(相应的 std::basic_string)具有赋值运算符
basic_string& operator=(charT c);
Run Code Online (Sandbox Code Playgroud)
并且此赋值运算符在此代码片段中使用
string convert(string name)
{
string code;
code = name[0]; // using of the assignment operator
...
}
Run Code Online (Sandbox Code Playgroud)
但是,该类没有您可以编写的适当构造函数
string code = name[0];
Run Code Online (Sandbox Code Playgroud)
你可以这样写
string code( 1, name[0] );
Run Code Online (Sandbox Code Playgroud)
使用构造函数
basic_string(size_type n, charT c, const Allocator& a = Allocator());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10771 次 |
| 最近记录: |