(Untitled)

Mar 17, 2008 19:43

Две статьи о программировании, которые с интересом прочитал:


немного из запомнившегося )

c, programming, pascal, link, c++

Leave a comment

Comments 6

voins March 17 2008, 14:25:02 UTC
1. Если у тебя функция/цикл/if и т.д. не помещается на один экран, значит что-то не так, и надо бы к этой функции получше приглядеться, разделить её на простые куски и т.д.

2. Если dynamic_cast используется только для проверки типа, и результат сразу выбрасывается, то это значит, что кто-то радикально неправильно что-то спроектировал. dynamic_cast - операция достаточно дорогая, чтобы использовать её таким способом.

В данных случаях некрасивость кода на C++ является совершенно чётким индикатором ошибки проектирования.

Reply

php_coder March 18 2008, 05:07:52 UTC
>1. Если у тебя функция/цикл/if и т.д. не помещается на один экран, значит что-то не так, и надо бы к этой функции получше приглядеться, разделить её на простые куски и т.д.

Ты прав. :)

>2. Если dynamic_cast используется только для проверки типа, и результат сразу выбрасывается, то это значит, что кто-то радикально неправильно что-то спроектировал. dynamic_cast - операция достаточно дорогая, чтобы использовать её таким способом.

Когда у меня стал вопрос приведения указателей на классы, то я прочитал, что dynamic_cast а) работает в run-time б) требует поддержки RTTI, которая не всегда может быть (или может быть выключена) Поэтому я использовал static_cast, т.к. точно знал что там за типы.

Но вопрос даже не в этом. Иде я в том, что в случае Паскаля запись выглядит очень понятно, почти на английском.

Reply

voins March 18 2008, 05:30:48 UTC
В общем случае dynamic_cast нельзя заменить на static_cast. Это разные операции. Если у тебя после этого программа прдолжила работать, то значит dynamic_cast тебе там и не был нужен.

А что касается run-time, rtti и прочего, как ты думаешь, а что использует эта операция в pascal? :)

Reply

php_coder March 18 2008, 05:50:00 UTC
>А что касается run-time, rtti и прочего, как ты думаешь, а что использует эта операция в pascal? :)

Не задумывался. А там это отключается или нет?

Reply


grundik March 18 2008, 14:14:07 UTC
Читать надо sicp, а не то, что ты :)

Reply


Leave a comment

Up