Как именно operator+=
определен для std::string
, но operator+
не определен? См. Мой MWE ниже (http://ideone.com/OWQsJk).C++: Почему «operator + =» определен, но не «operator +» для строк?
#include <iostream>
#include <string>
using namespace std;
int main() {
string first;
first = "Day";
first += "number";
cout << "\nfirst = " << first << endl;
string second;
//second = "abc" + "def"; // This won't compile
cout << "\nsecond = " << second << endl;
return 0;
}
Вы ожидаете: ' "ABC" -> оператор + ("DEF") 'работать? – crashmstr
@crashmstr Ну, я понимаю, почему. Это было бы во многих других языках (то есть, строковые литералы - это тип класса). –