Можно ли использовать ссылку при возвращении из функции? Это хорошо или плохо?



Нельзя:

• никогда нельзя возвращать ссылку на локальную переменную, созданную внутри функции, потому что она разрушится сразу после выхода из функции;

• нельзя возвращать ссылку на выделенную память, потому что её нельзя будет очистить.



Можно:

• когда возвращается константная ссылка на член класса;

• когда Вы пишете оператор сдвига вправо, оператор = и оператор индексирования, они должны возвращать ссылку на объект.



Возвращать ссылку - это хорошо, потому что не вызывается лишний копирующий конструктор для возвращаемого значения, но, иногда лучше и правильнее возвращать по значению.