[英]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.