Итак, я видел видео, рассказывающее о перегрузках операторов в классе. Этот класс был фиктивным Number
классом, который создавал действительные числа и мог использоваться как Number first(1)
или Number second(2)
(числа хранятся в элементе данных num), а затем мы перегружали операторы как методы-члены, чтобы иметь возможность сделать это first + second
или -first
. Код для этих перегрузок операторов выглядел так:
PS: rhs
для правой стороны
Number &Number::operator+(const Number &rhs) {
//perform math calculation between both objects
return *this; //return lhs by reference
}
или это для унарного оператора минус, который просто возвращает минус-версию одиночного целое число (бесполезно, но используется в качестве примера):
Number operator-() {
int temp = -num;
return temp;//temporary
}
Теперь в видео сказано, что мы должны вернуть объект по ссылке, если он использовался в цепочке операций после того, как он прошел через перегрузку, я также слышал это зависит от производительности (это чтобы избежать копирования?), но после этого я все еще не уверен, когда возвращать объект по ссылке или нет при перегрузках операторов класса.
Заранее спасибо.