![]() |
|
Модераторы: Daevaorn |
![]()
|
|
||
|
|
| Alek86 |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
опрос чисто познавательный - типо как распространено подобное использование конста
1.
2.
для не знающих - обычно их юзают фанаты конста и любители отдавать компилятору побольше мартышкиного труда |
||||
|
|||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 24 Всего: 69 |
я предпочитаю передавать параметры по константной ссылке.
|
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
zim22, для большинства целых чисел это лишние затраты
они сами прекрасно в 4 байта влазят (то есть происходит копирование), а так ты копируешь указатель на них, да еще и юзаешь свой i через указатель |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 24 Всего: 69 |
буду знать. но объекты классов удобней передавать через константную ссылку. пример:
Это сообщение отредактировал(а) zim22 - 22.4.2009, 12:04 |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
ни то ни другое
|
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 17 Всего: 110 |
пользуюсь, именно для того, чтобы дать понять, что эта переменная не задумывалась для изменения не пользуюсь в данном случае const - деталь реализации: она никак не влияет на вызывающую сторону, а имеет отношение только к внутренностям, так что нечего её в интерфейс вытаскивать... -------------------- qqq |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 4 Всего: 91 |
У меня часто бывает такое, что придумываешь тщательно интерфейс, прописываешь const и т.д., а потом решаешь что-то добавить или изменить в коде и приходится делать рефакторинг. Поэтому я лишний раз теперь и функции как const не объявляю, если четко не уверен, будет ли она меняться.
Другое дело, что потом лень всё это прописывать ;) Это сообщение отредактировал(а) SABROG - 22.4.2009, 12:51 |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
|
|||
|
||||
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
да, если этого требует логика программы.
например этот код не представляю без конст:
Правда ? Добавлено через 1 минуту и 45 секунд P.S. так как не встречался с необходимостью 2го случая, голосую только за первый, но предполагаю что и для второго может быть ситуация. |
||||
|
|||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 2 Всего: 306 |
оно как то не кошерно.
особенно это
|
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
правда без оптимизации по крайней мере потому в бусте и есть функционал а-ля boost::call_traits<T>::param_type |
|||
|
||||
| MTWizard |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 8.10.2007 Где: Київ Репутация: 3 Всего: 4 |
Юзаю обе конструкции.
Причём, для тех кто не знает про вторую: В объявлении функции можно писать
а потом в реализации
Так что ничего лишнего в интерфейс не выносится |
||||
|
|||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
оффтоп
жаль тот, кто за извращения проголосовал, не высказался... ЗЫ. этот оффтоп, чтоб голосование на первой странице еще подержать |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 24 Всего: 69 |
со ссылками такой фокус не прокатит.
error LNK2019: unresolved external symbol "void __cdecl foo(int &)" |
|||
|
||||
| Cтpaнник |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 12.10.2008 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: нет |
Пользую обе конструкции. Вторую, правда, с int - не в пример реже.
С моей точки зрения, это есть (даже в тривиальных случаях) документирование намерений разработчика об использовании переменных - если переменная по дизайну не должна меняться, то она должна быть константной. В случае, если изменяется дизайн и в соответствии с новым дизайном переменную требуется изменять - квалификатор const можно столь явно же и убрать. Можно считать этот подход паранойей. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |