crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Приведение типов C++/QT
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Алексей1153 Дата 4.6.2012, 7:28
 
Цитата(kuler @ 1.10.2008, 17:04) *
Исправляйте репутацию.

готово!

==============================

моё ИМХО

1) использование static_cast иногда может быть вполне оправдано - для подстраховки на этапе компиляции.

2) Необходимость использования dynamic_cast:
a ) признак кривого проектирования. Равно как и явное приведение к void* и из него - тоже такой признак
b ) при поддержке чужого запутанного кода - это подстраховка в реалтайме (можно всегда результат каста проверить на ноль)
Поэтому лучше проектировать так, чтобы кастить через этот оператор не было необходимости.
Кроме того, для возможности применения dynamic_cast класс обязан иметь хотя бы одну виртуальную функцию, что не всегда приемлимо

3 ) Необходимость использования reinterpret_cast : см. п 2)a) . Но ещё иногда требуется, к примеру, при взамодействии с ранее написанным кодом на чистом си (пример - WinAPI , извещения WM_NOTIFY от стандартных контролов)

Критика принимается :)
Гость_Barabas_* Дата 2.6.2012, 12:32
  Благодарю за эту информацию! Искал именно это=)
kuler Дата 2.10.2008, 15:26
 
Цитата(Tonal @ 2.10.2008, 14:15) *
Цитата(kuler @ 1.10.2008, 18:04) *
static_cast срабатывает на этапе компиляции, проверяет типы на подобность, dynamic_cast срабатывает на этапе выполнения...

Я этому где-нибудь противоречил?
Перечитай внимательно что я написал. :)

Я не описывал поведение обоих приведений а всего лишь утверждал о их взаимозаменимости в частном случае.
Или ты можешь привести пункт стандарта, который запрещает то, о чём я написал?

да я не тебе написал, а первому сообщению
Tonal Дата 2.10.2008, 13:15
 
Цитата(kuler @ 1.10.2008, 18:04) *
static_cast срабатывает на этапе компиляции, проверяет типы на подобность, dynamic_cast срабатывает на этапе выполнения...

Я этому где-нибудь противоречил?
Перечитай внимательно что я написал. :)

Я не описывал поведение обоих приведений а всего лишь утверждал о их взаимозаменимости в частном случае.
Или ты можешь привести пункт стандарта, который запрещает то, о чём я написал?
Litkevich Yuriy Дата 1.10.2008, 14:13
 
Цитата(kuler @ 1.10.2008, 18:04) *
Исправляйте репутацию.
все в твоих руках.
Вот тема, в ней конкретные сообщения. Поправь их, добавь точности или укажи где ошибка и как должно быть, чтобы было без ошибки.

принесешь полезную информацию, репутация поднимится
kuler Дата 1.10.2008, 14:04
  static_cast срабатывает на этапе компиляции, проверяет типы на подобность, dynamic_cast срабатывает на этапе выполнения проверяя реально ли можно приравнять объекты, кроме того объекты должны быть полиморфны, нельзя приравнивать void*.
Исправляйте репутацию.
ViGOur Дата 1.10.2008, 12:08
 
Цитата(kuler @ 1.10.2008, 12:15) *
про static_cast и dynamic_cast написано не шибко правильно

Цитата(kuler @ 1.10.2008, 12:44) *
вломы писать, там много, труп страуса почитайте
дело в том, что если так говоришь, то нужно описать, что именно не так! Иначе лучше просто промолчать... ;)
AD Дата 1.10.2008, 11:57
 
Цитата(kuler @ 1.10.2008, 12:44) *
вломы писать, там много, труп страуса почитайте

Тогда нефиг хаять! Вообще, за такого рода посты я бы забанил. Что за ерунда? Вполне достоверная информация была приведена. Если она неполная, то можно дополнить, а не хаять!
kuler Дата 1.10.2008, 11:44
 
Цитата(fsMark @ 1.10.2008, 12:27) *
Цитата(kuler @ 1.10.2008, 12:15) *
про static_cast и dynamic_cast написано не шибко правильно


Ждем спаведливой критики :)

вломы писать, там много, труп страуса почитайте
fsMark Дата 1.10.2008, 11:27
 
Цитата(kuler @ 1.10.2008, 12:15) *
про static_cast и dynamic_cast написано не шибко правильно


Ждем спаведливой критики :)
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 23.5.2022, 23:11