отличия complex u complex & в c++

  • Продолжаю начатое.. . В первом случае возвращаемый параметр значение, во втором ссылка. Унарный + никак значение не меняет. Правильнее будет написать так.. .

    const Сomplex & operator+(const Сomplex & object) {
    return object.val;
    }

    const - гарантирует, что переданное и возвращённое никоим образом не будет изменено. Действительно, за право поставить + перед объектом класса Сomplex, вовсе не обязательно, этот самый, объект изменять. Зато это даст право указать на его положительность! Полезная вещь! :)

    val - это в private определённое поле класса Сomplex и в конструкторе инициализированное.

    object - объект класса Сomplex, к которому будет вызван метод operator+

    Сomplex - написан у меня с большой буквы, потому-что принято классам давать такие имена, чтобы издалека было видно!

    Почему объект передаётся по ссылке? Потому что объект в этом случае не копируется.
    Почему возвращается по ссылке на тип? А здесь у него просто нет другого выхода! ;-))