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

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

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

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

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

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

Явное преобразование типов - C++
class CLSObj { void abc(int d){ ... } ... }; int main() { char *p; CLSObj obj;

Явное преобразование типов в UST - C++
Задание - реализовать универсальный скалярный тип (аля any/variant из буста). Я его написал, однако преобразование типов в моем коде...

Явное преобразование типов данных(объясните разницу)! - C++
В чём разница между этим: cout << "float(int_value15) / int_value2 = " << float(int_value15) / int_value2 << endl << "15 /...

Деления двух чисел используя явное преобразование типов - C++
Помогите кто может подкорректировать данную программу условие следующее "Деления двух чисел используя явное преобразование типов" Написал...

Неверный результат при преобразования типов данных static_cast<int>(double) - C++
Доброго времени суток, уважаемые программисты! Перейду сразу к сути проблемы: При данном значении вещественной переменной n (n=0.13) в...

Явное преобразование типа в стиле С - C++
1) назовите направление преобразование ( из какого типа в какой ) 2) назовите точность преобразования (С потерей точности , без потери...

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

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

Цитата Сообщение от Ksan Посмотреть сообщение
Неужели кто-то видит смысл учить 4 правила вместо 1?
Действительно. Нахера надо учить операцию умножения, если вместо умножения на 7 можно просто 7 раз сложить число и записать в комментарии. Нахера учиться пинать по мячу левой ногой, если есть правая. Нахера учить локальные переменные, если есть глобальные. Нахера учить Си++, если есть ассемблер. Ну и так далее.
0
Ksan
27 / 27 / 0
Регистрация: 02.11.2010
Сообщений: 370
25.06.2012, 01:35  [ТС] #7
Evg, образы не совсем верные. Что одно умножение, что другое. Разницы нету никакой, кроме той, что в си++ умножение "расчлененное", а в си - "цельное". Что удобней - умножить 7 на 7 или (3+2+1) на (3+2+1) ?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.06.2012, 01:35
Привет! Вот еще темы с ответами:

Можно ли использовать явное приведение типов для данных со спецификатором const? - C++
Например: int n; const int* ukn = &amp;n; int s; int* uks = &amp;s; const_cast&lt; int* &gt;( ukn ); // или (int*) ukn; *ukn = *uks; //...

Как написать такое явное преобразование из double в unsigned long int - C++
как написать такое явное преобразование из double в unsigned long int??? спасибо всем кто поможет...

Не работает явное преобразование типа, а неявное работает. - C++
Опечатался. Не работает явное преобразования, а не явное работает. Есть класс( не обращайте внимание на члены данные класса ): class...

Преобразование типов - C++
кое-что о преобразовании типов. float F; __int32 DW; DW=*(__int32 *)&amp;F; значение DW должно совпадать с F побитово, без всяких...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.06.2012, 01:35
Ответ Создать тему
Опции темы

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