1
Когда я перегрузить, позволяет говорить, что оператор «+» для класса в C++C++ операторы перегруженные как следствие («+», «+ =»)
MyClass MyClass::operator+(MyClass _c){
//code here
}
ли она автоматически применяется к " + = 'оператор? Компилятор автоматически заменит это для своей более длинной конусной части (a + = b < -> a = a + b)? Или это функция оператора времени выполнения?
Это не так. По крайней мере, компилятор MSVC++, похоже, считает его недействительным. – jumper0x08
Написание 'operator + =' в терминах 'operator +' звучит очень дорого - создайте временную LHS из этого, добавьте RHS, затем присвойте временный результат этому. Это будет немного проще в обратном направлении - напишите 'operator + =' и реализуйте 'operator +' в терминах этого. – Kos
Кроме того, условно оператор 'operator +()' не меняет ни один из его операндов (т. Е. 'A + b' не изменяет ни' a', ни 'b'). Это можно выразить с помощью 'const'. – Peter