Ich habe versucht, zwei Buchstaben in einen String anhängen, aber es scheint, dass die Zeichenfolge nicht geändert wird:Ausgabe mit String :: operator + =
void fun()
{
string str;
str += 'a' + 'b';
cout << str;
}
ich den Quellcode von STL überprüft und festgestellt, die Umsetzung der operator+=
, aber ich weiß immer noch nicht warum.
basic_string&
operator+=(_CharT __c)
{
this->push_back(__c);
return *this;
}
Sie erkennen, dass ' 'a' + 'b'' auf eine ganze Zahl ausgewertet wird, und nicht auf' "ab"', nicht wahr? –
was ist 'str' Anfangswert, den Sie tun' str = str + 'a' + 'b'; ' –
@GrijeshChauhan: oder effizienter,' (str + = 'a') + = 'b'; '; -) –