|
![]() |
#1 |
Участник
|
Ну, почему же?
Это ограничивает область видимости. И решает проблему использования переменной ЗА областью видимости Страустрап: http://htw.narod.ru/C/intro/gl2.htm#gl2.1.1 |
|
![]() |
#2 |
Участник
|
Страустрапу не зачёт за такой код.
Он бы ещё в цикле пустил инициализацию. В Аx-e более менее всё нормально с утечкой памяти в отличии от ранних версий VC(6.0 на других не работал). Ну и спрашиваеться нужно ли оно. Тем более просто так, такие вещи не даются. Выделил память, кто же должен её освободить. Значит лишние телодвижения за кадром. Или она так и висит пока класс не отработает. Пиши не большие методы и с видимостью будет всё нормально.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
![]() |
#3 |
Участник
|
И в цикле...
Инициализация - это не только обнуление. Инициализация - это еще и вызов конструктора. Таким образом, объявление и инициализация максимально приближены друг к другу. А вызов деструктора выполняется при выходе из области видимости. В результате получается очень ожидаемое поведение. И снижается риск использования неинициализированной переменной. Даже в маленьких методах. |
|
![]() |
#4 |
Участник
|
Цитата:
В С++ 6.0 в зависимости от конструкций или воровали чужую ящейку или работали со следующими. В результате чуть зазеваешься и получались такие чудеса. Цитата:
Конструктор и деструктор думаю более употребимо в отношении классов. А с переменными там что-то другое работает. (там более элементарные операции, названия этим действиям не видел)
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
![]() |
#5 |
Участник
|
Дык, как напишешь.
Если переменную в начале объявить, то ничего не изменится. А вот если область видимости переменной действительно ТОЛЬКО внутри цикла. И внутри цилка она и так конструируется и уничтожается. То, программисту меньше писать. И меньше ошибок с неинициализированной переменной ДО цикла и уничтоженной ПОСЛЕ цикла ![]() |
|
![]() |
#6 |
Участник
|
замечания для программистов С
Цитата:
...практически нет причин описывать локальную переменную не инициализируя ее, поскольку описание может появляться везде, где может стоять оператор, – не описывайте переменную, пока она вам не нужна.
|
|
![]() |
#7 |
Участник
|
Да. То, о чем так долго говорили большевики, СВЕРШИЛОСЬ.
Только вот про розовый цвет он сказал.
А про то, что изменять ПРОИЗВОЛЬНО цвет операторов, инструкций, комментариев - не сказал. Неужто опять зафиксируют эти ужасные зеленый красный синий?... да еще добавят перламутровый для операторов?! |
|
![]() |
#8 |
Боец
|
Цитата:
![]() А ещё интересно, почему был выбран розовый цвет и вообще, расширение в сторону цветовой палитры, нежели инструментария... ![]() |
|
![]() |
#9 |
Участник
|
Я и говорю: Шкатулка Пандоры.
Пока не вляпаешься как нибудь, не узнаешь. Вот если бы MS хотя бы в Best Practices внесла что-то вроде: Можно так то так то но не желательно, это может привести к тому то тому то. А может и не приведёт. Ведь не напишут. А сами ещё в тихую будут писать как надо. А начинаю с какой нибудь версии скажут: Улучшили редактор за счёт... Узнают все только когда появится ветка на Axforum-e: Замеры производительности редактора кода Ax 2009 и Ax 6.0 или Глюки в Ax 6.0. Хорошо бы конечно, что бы этого не было. ![]()
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
![]() |
#10 |
Участник
|
|
|
![]() |
#11 |
Участник
|
Цитата:
http://ru.wikipedia.org/wiki/%D0%A0%...B8%D0%BD%D0%B3 http://www.softkey.info/reviews/review5449.php http://www.bolero.ru/product-2229394...1330c167a8b320 http://www.ozon.ru/context/detail/id/1308678/ Цитата:
А вызов деструктора МОЖЕТ выполняться при выходе из области видимости. |
|
![]() |
#12 |
Участник
|
|
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|