Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
Ksan
26 / 26 / 0
Регистрация: 02.11.2010
Сообщений: 370
#1

static_cast и явное преобразование типов - C++

25.06.2012, 00:30. Просмотров 1637. Ответов 6
Метки нет (Все метки)

Зачем нужен статик_каст, если можно явно преобразовывать типы?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.06.2012, 00:30     static_cast и явное преобразование типов
Посмотрите здесь:

Преобразование типов C++
Деления двух чисел используя явное преобразование типов C++
Преобразование типов C++
Преобразование типов C++
C++ Не работает явное преобразование типа, а неявное работает.
C++ Можно ли использовать явное приведение типов для данных со спецификатором const?
Как написать такое явное преобразование из double в unsigned long int C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6549 / 3969 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
25.06.2012, 00:35     static_cast и явное преобразование типов #2
например, чем не мнение!?
http://alenacpp.blogspot.com/2005/08/c.html
Ksan
26 / 26 / 0
Регистрация: 02.11.2010
Сообщений: 370
25.06.2012, 00:48  [ТС]     static_cast и явное преобразование типов #3
Старый, оставшийся со времен C, но все еще работающий, лучше не использовать вовсе. Хотя бы потому, что конструкцию вида (Тип) очень сложно обнаружить при чтении кода программы.
Судя по этим словам, человек ленивый. Я бы не стал доверять такому. Он привел 5 вариантов приведения типа, НО (!) первый может заменить все остальные + простой синтаксис и тп. Я так и не понимаю, зачем было изобретать велосипед
Evg
Эксперт CАвтор FAQ
17292 / 5540 / 347
Регистрация: 30.03.2009
Сообщений: 15,083
Записей в блоге: 26
25.06.2012, 00:51     static_cast и явное преобразование типов #4
Цитата Сообщение от Jupiter Посмотреть сообщение
например, чем не мнение!?
http://alenacpp.blogspot.com/2005/08/c.html
Итого ТС'у можно ответить что-то типа того. Си'шное приведение типов преобразует между любыми типами, если это физически возможно. В Си++ приведение типов разделили на 4 группы и для каждой группы ввели свой как бы оператор преобразования типа. Смысл в этом такой, что делается дополнительная подсказка читающему, а так же делается страховка от собственных ошибок. Возможно, dyamic_cast нельзя выразить через Си'шное приведение типов, т.к. компилятор заранее может и не знать, указатель какого конкретного типа имеется на руках. Т.е. static_cast - это всего лишь некоторая попытка навести порядок и правило хорошего тона, чем необходимость

Добавлено через 1 минуту
Цитата Сообщение от Ksan Посмотреть сообщение
Судя по этим словам, человек ленивый. Я бы не стал доверять такому
Человек может и не ленивый, судя по количеству статей (кстати, это она, а не он). Но в данном случае как автор статьи оказалась не на высоте: приведены различные операторы преобразования, но не объяснено, нафига оно так сделао
Ksan
26 / 26 / 0
Регистрация: 02.11.2010
Сообщений: 370
25.06.2012, 00:51  [ТС]     static_cast и явное преобразование типов #5
Evg, для этого существую комментарии. Они говорят, что автор хотел сделать тут или там. + Немного старания и все станет понятно. Неужели кто-то видит смысл учить 4 правила вместо 1?
Evg
Эксперт CАвтор FAQ
17292 / 5540 / 347
Регистрация: 30.03.2009
Сообщений: 15,083
Записей в блоге: 26
25.06.2012, 00:56     static_cast и явное преобразование типов #6
Цитата Сообщение от Ksan Посмотреть сообщение
Evg, для этого существую комментарии. Они говорят, что автор хотел сделать тут или там
В том-то и дело, что комментарии говорят о том, что афтор хотел сделать, но не о том, что на самом деле афтор сделал. Не говоря уж о том, что комментарии имеют обыкновение протухать

Цитата Сообщение от Ksan Посмотреть сообщение
Неужели кто-то видит смысл учить 4 правила вместо 1?
Действительно. Нахера надо учить операцию умножения, если вместо умножения на 7 можно просто 7 раз сложить число и записать в комментарии. Нахера учиться пинать по мячу левой ногой, если есть правая. Нахера учить локальные переменные, если есть глобальные. Нахера учить Си++, если есть ассемблер. Ну и так далее.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.06.2012, 01:35     static_cast и явное преобразование типов
Еще ссылки по теме:

C++ преобразование типов
C++ Явное преобразование типов
C++ Неверный результат при преобразования типов данных static_cast<int>(double)
C++ Явное преобразование типов в UST
C++ Явное преобразование типов данных(объясните разницу)!

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ksan
26 / 26 / 0
Регистрация: 02.11.2010
Сообщений: 370
25.06.2012, 01:35  [ТС]     static_cast и явное преобразование типов #7
Evg, образы не совсем верные. Что одно умножение, что другое. Разницы нету никакой, кроме той, что в си++ умножение "расчлененное", а в си - "цельное". Что удобней - умножить 7 на 7 или (3+2+1) на (3+2+1) ?
Yandex
Объявления
25.06.2012, 01:35     static_cast и явное преобразование типов
Ответ Создать тему
Опции темы

Текущее время: 02:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru