Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
805 / 532 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
1

Что лучше: ссылка или объект?

27.10.2017, 17:46. Показов 538. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
привет, задался таким вопросом: как лучше поступать в следующей ситуации?
C++
1
2
3
4
auto f() -> std::string;
// ...
const std::string str{ f() }; // как лучше cделать: так?
std::string const& str{ f() }; // или так?
кто что может сказать о разнице этих двух вариантов?
что предпочтительнее?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.10.2017, 17:46
Ответы с готовыми решениями:

Что лучше ссылка или указатель?
Что лучше - ссылка или указатель?

Основы: указатель на объект или объект, что выбрать?
Не до конца понимаю (или вообще не понимаю) когда лучше использовать указатель на объект, а когда...

Интерфейс, в методе которого создается объект типа IDictionary и возвращается ссылка на этот объект
Привет всем. Необходимо реализовать интерфейс, в методе которого создается объект типа IDictionary...

Что лучше С++ 6 или С++ 2010 Что выбрать, мое мнение
Что лучше С++ 6 или С++ 2010 Что выбрать, мое мнение Вот я тут на днях думал и пришел к выводу,...

7
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
27.10.2017, 18:19 2
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
что предпочтительнее?
в конкретно данном случае - не принципиальный момент.

однако, если в будущем код будет переписан:
C++
1
2
3
4
auto f() -> const std::string&;
// ...
const std::string str{ f() }; // как лучше cделать: так?
std::string const& str{ f() }; // или так?
второй вариант сразу станет более предпочтительным.


итого:
при прочих равных,
второй вариант более универсален.
1
875 / 461 / 91
Регистрация: 10.06.2014
Сообщений: 2,669
27.10.2017, 18:50 3
hoggy,
То есть const до типа и после типа выдаёт одинаковое поведение?
0
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
27.10.2017, 18:56 4
Цитата Сообщение от Undisputed Посмотреть сообщение
То есть const до типа и после типа выдаёт одинаковое поведение?
это - один и тот же тип:

C++
1
const type&
C++
1
type const &
1
805 / 532 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
27.10.2017, 19:15  [ТС] 5
Цитата Сообщение от Undisputed Посмотреть сообщение
То есть const до типа и после типа выдаёт одинаковое поведение?
не, я просто юзаю такую штучку, т.к. читать объявление становится удобнее, тупо справа налево
C++
1
type const & // ссылка на конст тайп
0
Mournful Max
27.10.2017, 19:56
  #6

Не по теме:

Цитата Сообщение от Ferrari F1 Посмотреть сообщение
тупо справа налево
Почему тогда не string const, а
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
const std::string
?

0
139 / 67 / 46
Регистрация: 15.10.2015
Сообщений: 308
27.10.2017, 20:02 7
C++
1
string const a;
эквивалентно
C++
1
const string a;
0
805 / 532 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
27.10.2017, 20:10  [ТС] 8
Captain Maxee, не поверите, но сейчас после этой темы по всему проекту стал заменять на type const =)
Причина такова, что если в будущем к этому объявлению добавить &, то ничего больше изменять не потребуется)

Добавлено через 4 минуты
Хотя до этого руководствовался правилом, что перед несоставными типами(не ссылки и не указатели) надо писать const,
Но было не правилом, а скорее привычкой, т.к. в прочтенных мною книгах любят писать именно так
1
27.10.2017, 20:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.10.2017, 20:10
Помогаю со студенческими работами здесь

Что лучше: динамические массивы, векторы, списки, map контейнеры или что-то ещё?
Привет всем! Помогите правильно алгоритм выбрать. Надо получать из файлов (около 8000 файлов)...

Глобальные и локальные переменные: что лучше (или что для чего и в чем конкретная разница)?
Что лучше (или как надо (или что для чего и в чем конкретная разница)): 1. // объявление в...

Недопустимый неполный тип , или как передать в функцию указатель на объект класса , или просто объект
Други мои , кодеры. Не могу я ни как передать в функцию объект класса , или что еще лучше(для меня...

Что лучше c++ или c#?
Здравствуйте! Я изучил Pascal и Delphi, сейчас хочу перейти на C, но ни как не могу определиться...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru