鐪嬩竴孌電畝鍗曠殑浠g爜錛?br>
int main()
{
string s;
s += 'a';
s += "bc";
cout << "s: " << s << endl;
cout << endl;
system("Pause");
return 0;
}
瀵逛笉錛熷綋鐒跺鐨勶紒鍙傜湅basic_string.h涓殑婧愮爜錛?br>
basic_string&
operator+=(const basic_string& __str) { return this->append(__str); }
/**
* @brief Append a C string.
* @param s The C string to append.
* @return Reference to this string.
*/
basic_string&
operator+=(const _CharT* __s) { return this->append(__s); }
/**
* @brief Append a character.
* @param s The character to append.
* @return Reference to this string.
*/
basic_string&
operator+=(_CharT __c) { return this->append(size_type(1), __c); }
涓嬮潰鐨勪唬鐮佸涓嶏紵
string s1;
s1 = 'a'; // = 涔熷畾涔変簡鍙寵竟鐨勫間負瀛楃鐨勬儏鍐?nbsp;
cout << "s1: " << s1 << endl;
s1 = "bc";
cout << "s1: " << s1 << endl;
鐪嬫簮鐮侊紒
basic_string&
operator=(const basic_string& __str)
{
this->assign(__str);
return *this;
}
/**
* @brief Copy contents of @a s into this string.
* @param s Source null-terminated string.
*/
basic_string&
operator=(const _CharT* __s)
{
this->assign(__s);
return *this;
}
/**
* @brief Set value to string of length 1.
* @param c Source character.
*
* Assigning to a character makes this string length 1 and
* (*this)[0] == @a c.
*/
basic_string&
operator=(_CharT __c)
{
this->assign(1, __c);
return *this;
}
涓嬮潰鐨勫憿
string s2("u");
s2 = 'j' + s2;
cout << "s2: " << s2 << endl;
s2 = s2 + 'n';
cout << "s2: " << s2 << endl;
s2 = "jin " + s2;
cout << "s2: " << s2 << endl;
s2 = s2 + " xia";
cout << "s2: " << s2 << endl;
榪樻槸婧愮爜錛?br>
// operator+
/**
* @brief Concatenate two strings.
* @param lhs First string.
* @param rhs Last string.
* @return New string with value of @a lhs followed by @a rhs.
*/
template<typename _CharT, typename _Traits, typename _Alloc>
basic_string<_CharT, _Traits, _Alloc>
operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
const basic_string<_CharT, _Traits, _Alloc>& __rhs)
{
basic_string<_CharT, _Traits, _Alloc> __str(__lhs);
__str.append(__rhs);
return __str;
}
/**
* @brief Concatenate C string and string.
* @param lhs First string.
* @param rhs Last string.
* @return New string with value of @a lhs followed by @a rhs.
*/
template<typename _CharT, typename _Traits, typename _Alloc>
basic_string<_CharT,_Traits,_Alloc>
operator+(const _CharT* __lhs,
const basic_string<_CharT,_Traits,_Alloc>& __rhs);
/**
* @brief Concatenate character and string.
* @param lhs First string.
* @param rhs Last string.
* @return New string with @a lhs followed by @a rhs.
*/
template<typename _CharT, typename _Traits, typename _Alloc>
basic_string<_CharT,_Traits,_Alloc>
operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs);
/**
* @brief Concatenate string and C string.
* @param lhs First string.
* @param rhs Last string.
* @return New string with @a lhs followed by @a rhs.
*/
template<typename _CharT, typename _Traits, typename _Alloc>
inline basic_string<_CharT, _Traits, _Alloc>
operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
const _CharT* __rhs)
{
basic_string<_CharT, _Traits, _Alloc> __str(__lhs);
__str.append(__rhs);
return __str;
}
/**
* @brief Concatenate string and character.
* @param lhs First string.
* @param rhs Last string.
* @return New string with @a lhs followed by @a rhs.
*/
template<typename _CharT, typename _Traits, typename _Alloc>
inline basic_string<_CharT, _Traits, _Alloc>
operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs)
{
typedef basic_string<_CharT, _Traits, _Alloc> __string_type;
typedef typename __string_type::size_type __size_type;
__string_type __str(__lhs);
__str.append(__size_type(1), __rhs);
return __str;
}
涔熻錛屾渶濂界殑璧勬枡灝辨槸鐪嬬湅澶存枃浠舵垨鑰呮簮鐮侊紒

]]>