Можно ли использовать ссылку при возвращении из функции? Это хорошо или плохо?
Нельзя:
• никогда нельзя возвращать ссылку на локальную переменную, созданную внутри функции, потому что она разрушится сразу после выхода из функции;
• нельзя возвращать ссылку на выделенную память, потому что её нельзя будет очистить.
Можно:
• когда возвращается константная ссылка на член класса;
• когда Вы пишете оператор сдвига вправо, оператор = и оператор индексирования, они должны возвращать ссылку на объект.
Возвращать ссылку - это хорошо, потому что не вызывается лишний копирующий конструктор для возвращаемого значения, но, иногда лучше и правильнее возвращать по значению.
Нельзя:
• никогда нельзя возвращать ссылку на локальную переменную, созданную внутри функции, потому что она разрушится сразу после выхода из функции;
• нельзя возвращать ссылку на выделенную память, потому что её нельзя будет очистить.
Можно:
• когда возвращается константная ссылка на член класса;
• когда Вы пишете оператор сдвига вправо, оператор = и оператор индексирования, они должны возвращать ссылку на объект.
Возвращать ссылку - это хорошо, потому что не вызывается лишний копирующий конструктор для возвращаемого значения, но, иногда лучше и правильнее возвращать по значению.