no viable conversion from #39;value_type#39; (aka #39;char#39;) to #39;string#39; (aka #39;basic_stringlt;char, char_traitslt;chargt;, allocatorlt;chargt; gt;#39;)(没有从“value_type(又名“char)到“string(又名“basic_stringchar, char_traitschar, allocatorchargt;)的可行转
问题描述
string convert(string name)
{
string code = name[0];
...
}
我从这一行得到从'value_type'(又名'char')到'string'(又名'basic_string,分配器>')没有可行的转换".
I get "no viable conversion from 'value_type' (aka 'char') to 'string' (aka 'basic_string, allocator >')" from this line.
如果我将其更改为:
string convert(string name)
{
string code;
code = name[0];
...
}
然后就可以了.谁能解释一下为什么?
Then it works. Can anyone explain why?
推荐答案
类std::string(对应std::basic_string)有赋值运算符
Class std::string (correspondingly std::basic_string) has assignment operator
basic_string& operator=(charT c);
并且此代码片段中使用了此赋值运算符
and this assignment operator is used in this code snippet
string convert(string name)
{
string code;
code = name[0]; // using of the assignment operator
...
}
但是该类没有您可以编写的适当构造函数
However the class does not has an appropriate constructor that you could write
string code = name[0];
你可以这样写
string code( 1, name[0] );
使用构造函数
basic_string(size_type n, charT c, const Allocator& a = Allocator());
这篇关于没有从“value_type"(又名“char")到“string"(又名“basic_string<char, char_traits<char>, allocator<char>>')的可行转换的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:没有从“value_type"(又名“char")到“string"(又名“basic_string<char, char_traits<char>, allocator<char>>')的可行转换
基础教程推荐
- 为什么派生模板类不能访问基模板类的标识符? 2021-01-01
- 非静态 const 成员,不能使用默认赋值运算符 2022-10-09
- GDB 显示调用堆栈上函数地址的当前编译二进制文 2022-09-05
- 如果我为无符号变量分配负值会发生什么? 2022-01-01
- 通过引用传递 C++ 迭代器有什么问题? 2022-01-01
- 初始化列表*参数*评估顺序 2021-01-01
- 我应该对 C++ 中的成员变量和函数参数使用相同的名称吗? 2021-01-01
- 为什么 typeid.name() 使用 GCC 返回奇怪的字符以及如 2022-09-16
- 为什么 RegOpenKeyEx() 在 Vista 64 位上返回错误代码 2021-01-01
- CString 到 char* 2021-01-01
