![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| cppGhost |
|
||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 24.4.2013 Репутация: нет Всего: нет |
Доброго времени суток, есть два простых варианта
то есть в первом случае мы один раз объявляем переменную и потом ее используем. во втором объявляем непосредственно перед использованием, что повышает читаемость кода, но при этом конструктор вызывватеся большее количество раз. что лучше то? вместо
может быть, допустим
|
||||||||
|
|||||||||
| sQu1rr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: 3 Всего: 13 |
За то в первом варинате, много раз вызывается оператор присвоения (разумеется если вы изменяете этот объект). Разумеется зависит от того, насколько сложный конструктор/деструктор (не в этом случае) и так далее и так далее, но хорошая практика объявлять переменные с наименьшей областью видимости, что бы не засорять именное простарнство и просто что бы избежать ошибок, к тому же, это дает больше возможности для оптимизатора, который вполне может и кинуть объявление вверх функции если посчитает это нужным. Больше инфы тут http://stackoverflow.com/questions/982963/...within-a-loop-c |
|||
|
||||
| Ihost |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 14.9.2012 Репутация: нет Всего: нет |
Все зависит от того, в каком реальной практическом случае это используется, и какая версия языка C++ подразумевается
Если имеется некоторый достаточный сложный объект, и к нему применяется move semantics - это может дать некоторый прирост в производительности, поскольку не будет нужен ни полноценный конструктор и деструктор, ни временный объект при копировании Информация для размышления - Move semantics |
|||
|
||||
| cppGhost |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 24.4.2013 Репутация: нет Всего: нет |
объекты на самом деле простые. обычно строки или указатели на небольшие классы. меня больше волновало, скажет ли кто-нибудь про это
сказали =)) спасибо |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |