|
12.10.2009, 12:11 | #1 |
Участник
|
Инициализацию где хочешь в коде можно делать. Ужас.
Это же не айс. Код превращается в фиг знает что. Это возможность хороша только для длинных методов. Открывая эту шкатулку пандоры, они что хотят сказать да пишите наздоровье длинные методы.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
12.10.2009, 12:17 | #2 |
Участник
|
Ну, почему же?
Это ограничивает область видимости. И решает проблему использования переменной ЗА областью видимости Страустрап: http://htw.narod.ru/C/intro/gl2.htm#gl2.1.1 |
|
12.10.2009, 12:33 | #3 |
Участник
|
Страустрапу не зачёт за такой код.
Он бы ещё в цикле пустил инициализацию. В Аx-e более менее всё нормально с утечкой памяти в отличии от ранних версий VC(6.0 на других не работал). Ну и спрашиваеться нужно ли оно. Тем более просто так, такие вещи не даются. Выделил память, кто же должен её освободить. Значит лишние телодвижения за кадром. Или она так и висит пока класс не отработает. Пиши не большие методы и с видимостью будет всё нормально.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
12.10.2009, 12:46 | #4 |
Участник
|
И в цикле...
Инициализация - это не только обнуление. Инициализация - это еще и вызов конструктора. Таким образом, объявление и инициализация максимально приближены друг к другу. А вызов деструктора выполняется при выходе из области видимости. В результате получается очень ожидаемое поведение. И снижается риск использования неинициализированной переменной. Даже в маленьких методах. |
|
12.10.2009, 12:58 | #5 |
Участник
|
Цитата:
В С++ 6.0 в зависимости от конструкций или воровали чужую ящейку или работали со следующими. В результате чуть зазеваешься и получались такие чудеса. Цитата:
Конструктор и деструктор думаю более употребимо в отношении классов. А с переменными там что-то другое работает. (там более элементарные операции, названия этим действиям не видел)
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
12.10.2009, 13:11 | #6 |
Участник
|
Дык, как напишешь.
Если переменную в начале объявить, то ничего не изменится. А вот если область видимости переменной действительно ТОЛЬКО внутри цикла. И внутри цилка она и так конструируется и уничтожается. То, программисту меньше писать. И меньше ошибок с неинициализированной переменной ДО цикла и уничтоженной ПОСЛЕ цикла |
|
12.10.2009, 13:19 | #7 |
Участник
|
замечания для программистов С
Цитата:
...практически нет причин описывать локальную переменную не инициализируя ее, поскольку описание может появляться везде, где может стоять оператор, – не описывайте переменную, пока она вам не нужна.
|
|
12.10.2009, 13:23 | #8 |
Участник
|
Да. То, о чем так долго говорили большевики, СВЕРШИЛОСЬ.
Только вот про розовый цвет он сказал.
А про то, что изменять ПРОИЗВОЛЬНО цвет операторов, инструкций, комментариев - не сказал. Неужто опять зафиксируют эти ужасные зеленый красный синий?... да еще добавят перламутровый для операторов?! |
|
12.10.2009, 13:28 | #9 |
Участник
|
Я и говорю: Шкатулка Пандоры.
Пока не вляпаешься как нибудь, не узнаешь. Вот если бы MS хотя бы в Best Practices внесла что-то вроде: Можно так то так то но не желательно, это может привести к тому то тому то. А может и не приведёт. Ведь не напишут. А сами ещё в тихую будут писать как надо. А начинаю с какой нибудь версии скажут: Улучшили редактор за счёт... Узнают все только когда появится ветка на Axforum-e: Замеры производительности редактора кода Ax 2009 и Ax 6.0 или Глюки в Ax 6.0. Хорошо бы конечно, что бы этого не было.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
13.10.2009, 16:39 | #10 |
Участник
|
|
|
13.10.2009, 19:33 | #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/ Цитата:
А вызов деструктора МОЖЕТ выполняться при выходе из области видимости. |
|
23.10.2009, 17:31 | #12 |
Участник
|
|
|
12.10.2009, 16:00 | #13 |
Участник
|
Цитата:
Кстати, кмк, многие фичи X++, к которым мы так привыкли и которые нам нравятся, это следствие не продуманности языка, а то что Дамгаард 10 лет назад это далеко не Микрософт или Сан, т.е. не было у них таких ресурсов что бы спроектировать и реализовать полноценный Java подобный ЯП. Так что то, что X++ в том виде, в котором мы его видим сегодня, скорее необходимый минимум того, чем хотела наделить систему Датская компания. Более того, я думаю что совершенствование самого языка это новые шаги, в долгосрочной перспективе, целиком заменить его на C#. Правда, мне лично, очень интересно что будут делать со встроенным SQL? Я не разделяю оптимизм того бравого менеджера, который в видео про трансляцию p-кода в CLR, небрежно заявил: "что мол, у нас есть LINQ и встроенный SQL нам больше не нужен". В общем, поживем увидим, но развитие это всегда хорошо, да и жить программистам будет веселей |
|
|
За это сообщение автора поблагодарили: miklenew (2). |
12.10.2009, 16:19 | #14 |
Участник
|
Всттроенный SQL убогее LINQ, насколько я знаю. Что тебе не зватает в LINQ, что есть во встроенном SQL?
|
|
|
За это сообщение автора поблагодарили: Lemming (2). |
12.10.2009, 16:19 | #15 |
Участник
|
Цитата:
Цитата:
Когда перешёл с С++ Builder на Axapt-у, было тоже самое. А щас что? Возвращаться назад. В страну невыученных уроков. Если программистам среды хватает для реализации самых разных задач, зачем чё то выдумывать. MS то понятно: Кручу - верчу, выиграть хочу. Но вам Lemming за чем это?
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
12.10.2009, 16:33 | #16 |
Участник
|
Just for fun, как и написано в предыдущем моем посте. А вот про LINQ2SQL я, походу, преждевременно ввязался в дискуссию Собственно, что служит поводом покурить эту технологию более глубоко.
|
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|