首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于string(basic_string)种

2013-01-22 
关于string(basic_string)类c里的string类没有+操作符,所有无法执行ca+b(变量都是string类型)但是为什

关于string(basic_string)类
c里的string类没有"+"操作符,所有无法执行c=a+b(变量都是string类型)
但是为什么c++的这个string(basic_string)同样找不到"+"操作符的重载,却可以执行"+"操作符呢?

摘自msdn里的basic_string说明:
basic_string
allocator_type · append · assign · at · basic_string · begin · c_str · capacity · char_type · compare · const_iterator · const_pointer · const_reference · const_reverse_iterator · copy · data · difference_type · empty · end · erase · find · find_first_not_of · find_first_of · find_last_not_of · find_last_of · get_allocator · insert · iterator · length · max_size · npos · operator+= · operator= · operator[] · pointer · rbegin · reference · rend · replace · reserve · resize · reverse_iterator · rfind · size · size_type · substr · swap · traits_type · value_type 

[解决办法]
c里面没有string.
c++里面重载的全局的+号,但不是basic_string类成员函数,所以msdn就没有显示出来。
具体代码你可以看<string>文件,里面有重载的


template<class _Elem,
class _Traits,
class _Alloc> inline
basic_string<_Elem, _Traits, _Alloc> __CLRCALL_OR_CDECL operator+(
const basic_string<_Elem, _Traits, _Alloc>& _Left,
const basic_string<_Elem, _Traits, _Alloc>& _Right)
{// return string + string
return (basic_string<_Elem, _Traits, _Alloc>(_Left) += _Right);
}

[解决办法]
File: "C:\Program Files\Microsoft Visual Studio 10.0\VC\crt\src\string" 34 occurrences found on 34 lines
    15:         // basic_string TEMPLATE OPERATORS
    19:     basic_string<_Elem, _Traits, _Alloc> operator+(
    33:     basic_string<_Elem, _Traits, _Alloc> operator+(
    47:     basic_string<_Elem, _Traits, _Alloc> operator+(
    61:     basic_string<_Elem, _Traits, _Alloc> operator+(
    75:     basic_string<_Elem, _Traits, _Alloc> operator+(
    89:     basic_string<_Elem, _Traits, _Alloc> operator+(
    99:     basic_string<_Elem, _Traits, _Alloc> operator+(
   109:     basic_string<_Elem, _Traits, _Alloc> operator+(
   123:     basic_string<_Elem, _Traits, _Alloc> operator+(
   133:     basic_string<_Elem, _Traits, _Alloc> operator+(
   143:     basic_string<_Elem, _Traits, _Alloc> operator+(
   153:     basic_string<_Elem, _Traits, _Alloc> operator+(
   163:     bool operator==(


   173:     bool operator==(
   183:     bool operator==(
   193:     bool operator!=(
   203:     bool operator!=(
   213:     bool operator!=(
   223:     bool operator<(
   233:     bool operator<(
   243:     bool operator<(
   253:     bool operator>(
   263:     bool operator>(
   273:     bool operator>(
   283:     bool operator<=(
   293:     bool operator<=(
   303:     bool operator<=(
   313:     bool operator>=(
   323:     bool operator>=(
   333:     bool operator>=(
   344:     basic_istream<_Elem, _Traits>& operator>>(
   458:     basic_istream<_Elem, _Traits>& operator>>(
   489:     basic_ostream<_Elem, _Traits>& operator<<(

热点排行