![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#81 | |
Great Code Monkey
Форумчанин
Регистрация: 09.08.2007
Сообщений: 533
|
![]()
Не очень понятно, о чем спор. Если накладные расходы на создание и уничтожение объекта не существенны, то все остальное дело вкуса. Еще б поспорили, где фигурные скобки ставить (вброс: на той же строке ествно).
Цитата:
{ char c; for ... } |
|
![]() |
![]() |
![]() |
#82 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
#83 | ||
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]() Цитата:
Идеология с++ заключается в управлении сложностью проекта. Красивая архитектура с++ избавляет программиста от необходимости держать в голове "низкоуровневую кухню" Допустим, фик с ним, с чаром. А если речь об объекте класса? Вы скажете: ну тяжелый же объект будит вызывать конструкторы, диструкторы, это же с++. Поэтому его надо выносить за тело цикла. И что получится? Это мы выносим, а это не выносим, да? Ну то есть, вместо единообразного стиля, получаем многообразный, и с требованием, знать как минимум азы ассемблера? То есть вы предлагаете необходимость знания ассемблера тупо для того, что бы понимать что делает высокоуровневый прикладной код? Так что ли? Может тогда проще сразу писать на ассемблере? Макконелл в своей книге пишет: единообразный стиль - первая превентивная форма защиты от ошибок. И именно поэтому, и были созданы понятия о нотациях code-style Цитата:
Не чар, но тяжелый объект. Его конструкторы/диструкторы сжирают кучу времени. Понятно, что вы вынесете его за тело цикла, да? Вопрос: почему у вас объект находится за 1005000 км от места использования? Последний раз редактировалось _Bers; 25.12.2011 в 18:51. |
||
![]() |
![]() |
![]() |
#84 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]()
мой тезис: что бы не допустить нерационального падения - достаточно знать родной язык.
А что бы обеспечить близкое использование создаваемой сущности - нужно грамотно структурировать программу. "Разделяй и властвуй" - разбивать сложную задачу на кучку мелких инлайн функций, которые манипулируют значениями данных. Но ничего не создают, и не удаляют. В самом цикле только обработка данных. Ничего не создаётся, и не удаляется. Последний раз редактировалось _Bers; 25.12.2011 в 18:44. |
![]() |
![]() |
![]() |
#85 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
#86 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]() |
![]() |
![]() |
![]() |
#87 |
Участник клуба
Регистрация: 23.12.2010
Сообщений: 1,129
|
![]()
О боже.
Да, именно так. Человек думающий отличается от догматика тем, что видит границы применимости существующих правил (догм). Саттер в своей книге писал именно о таком случае, например. Для понимания того, как и когда происходит создание и уничтожение объектов в C++, совсем не обязательно знать ассемблер, потому не нужно пытаться построить на этом красивый силлогизм. И если это понимание есть - становится очевидным, в каких случаях стоит пренебречь читаемостью кода и унести переменную далеко, а в каких этого делать не стоит. Опять же - это будет понятно даже без знания ассемблера, которого ты так боишься. Программисту всегда приходится балансировать между читаемостью&поддерживаемостью кода, скоростью его работы и разными другими факторами. И никакие механически вызубренные правила "единого стиля" тут не помогут. |
![]() |
![]() |
![]() |
#88 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
я же сказал, если.
иначе естественно надо, поскольку конструктор обьекта может обладать побочными эффектами, то если он в цикле, то каждый раз обязан быть вызван. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#89 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]() |
![]() |
![]() |
![]() |
#90 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
PopupMenu со мной не дружит | Жигилий_Ульяна | Компоненты Delphi | 5 | 25.12.2008 11:04 |
проблемы с select или со мной... | smoke888 | JavaScript, Ajax | 2 | 23.09.2008 19:02 |