Читаю C++ Primer, в перегруженной операции главы, автор привел пример:Каковы возвращаемые типы операторов в C++?
// member binary operator: left-hand operand bound to implicit this pointer
Sales_item& Sales_item::operator+=(const Sales_item&);
// nonmember binary operator: must declare a parameter for each operand
Sales_item operator+(const Sales_item&, const Sales_item&);
затем, автор объяснил:
Эта разница соответствует возвращаемые типы этих операторов, если применяется к арифметическим типам: добавление дает значение rvalue и составное присваивание возвращает ссылку на левый операнд.
Я не совсем уверен в "compound assignment returns a reference to the left-hand operand
". Может ли кто-нибудь подробно остановиться на этом, а также на соответствующие вещи, пожалуйста?
Посмотрите метод цепной связи. В основном это означает, что 'a = b' возвращает' a', так что 'c = a = b' вычисляет' c = (a = b) 'или' a = b', а затем 'c = a' все в 1-м выражении. – chris