Вы хотите вернуть константную ссылку когда вы возвращаете свойство объекта, которое вы не хотите изменять вне его. Например: когда у вашего объекта есть имя, вы можете сделать следующий метод const std::string& get_name{ return name; };.
Когда следует использовать константный ссылочный параметр?
При передаче аргумента по ссылке всегда используйте константную ссылку, если только вам не нужно изменить значение аргумента. Неконстантные ссылки не могут связываться с r-значениями. Функцию с неконстантным ссылочным параметром нельзя вызывать с помощью литералов или временных переменных.
Когда следует вернуться по ссылке?
Передача по ссылке означает передачу ссылки на уже существующий объект. Таким образом, если вы хотите вернуть ссылку в функции, это означает, что вы должны создать этот объект в функции Вы знаете, что функция может создать новый объект двумя способами: стек или куча.
Что делает ссылка const?
если вы используете константную ссылку, вы передаете ее по ссылке и исходные данные не копируются. в обоих случаях исходные данные не могут быть изменены изнутри функции.
Что означает возврат ссылки?
Это означает, что вы возвращаетесь по ссылке, что, по крайней мере, в данном случае, вероятно, нежелательно. В основном это означает, что возвращаемое значение является псевдонимом того, что вы вернули из функции. Если это не постоянный объект, это незаконно.