读书人

求解 error C2664: “std:basic_stri

发布时间: 2012-08-16 12:02:15 作者: rapoo

求解 error C2664: “std::basic_string<_Elem,_Traits,_Ax>::basic_string(const std::

string gScriptLine::GetString(int index)
{
if (!(index < m_arParam.size()))
return "";

string t = m_arParam[index];

string::iterator it = remove(t.begin(), t.end(), '"');

string ret(t.begin(), it);

if (ret.empty())
return string();

return ret.begin();
}

出现错误



error C2664: “std::basic_string<_Elem,_Traits,_Ax>::basic_string(const std::basic_string<_Elem,_Traits,_Ax>::_Myt &)” : 不能将参数 1 从“std::basic_string<_Elem,_Traits,_Ax>::iterator”转换为“const std::basic_string<_Elem,_Traits,_Ax>::_Myt &”
with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::allocator<char>
]
and
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::allocator<char>
]
and
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::allocator<char>
]
原因如下: 无法从“std::basic_string<_Elem,_Traits,_Ax>::iterator”转换为“const std::basic_string<_Elem,_Traits,_Ax>::_Myt”
with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::allocator<char>
]
and
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::allocator<char>
]
无构造函数可以接受源类型,或构造函数重载决策不明确

[解决办法]
* begin()
[解决办法]

C/C++ code
string gScriptLine::GetString(int index) { ...  return ret.begin(); //类型不匹配啊}
[解决办法]
因为你函数返回类型是string.
ret.begin(); 的类型是个迭代器,
所以要类型匹配,需要return ret;
[解决办法]
知道'*' 运算符么?这要具体到哪?
探讨
* begin() 

不是很明白,能说具体点吗

[解决办法]
直接return ret;
[解决办法]
知道'*' 运算符么?这要具体到哪?
探讨
* begin() 

不是很明白,能说具体点吗

读书人网 >C++

热点推荐