73 / 73 / 12
Регистрация: 22.01.2013
Сообщений: 231
|
||||||
1 | ||||||
static_cast03.02.2013, 15:53. Показов 3577. Ответов 35
Метки нет (Все метки)
Почему не работает static_cast<float>(n/m);? Как сделать чтобы он все же перевел это к типу float?
0
|
03.02.2013, 15:53 | |
Ответы с готовыми решениями:
35
Static_cast Static_cast static_cast Оператор static_cast |
74 / 37 / 3
Регистрация: 23.09.2012
Сообщений: 408
|
|
03.02.2013, 20:26 | 21 |
конечно, если написать
a = static_cast<int>(b); то длинно не получится. А если выражение само по себе длинное?
0
|
03.02.2013, 20:28 | 22 |
Хорошо, вы сказали: "Но не бездумно же". Мне просто интересно, а чем вы аргументируете изменение константы? Пёс, const_cast позволяет не только убрать, но и добавить cv квалификаторы.
0
|
74 / 37 / 3
Регистрация: 23.09.2012
Сообщений: 408
|
|
03.02.2013, 20:28 | 23 |
Пёс, а если программист не взаимодействует с переменной, которая изменится? Если она нужна лишь для функционирования какой-нибудь подсистемы.
0
|
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
|
|
03.02.2013, 20:30 | 25 |
Временные переменные здесь не помогут?
0
|
229 / 76 / 9
Регистрация: 03.02.2013
Сообщений: 311
|
|
03.02.2013, 20:34 | 26 |
Спасибо, мне это известно. Просто на 1й странице была затронута тема именно снятия квалификатора const
Добавлено через 2 минуты Ну значит подситема будет полагаться на то, что после вызова ващей функции переменная не будет изменена. Если ктото объявил указатель как const, значит он не хотел что бы меняли данные?
0
|
Форумчанин
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
03.02.2013, 20:36 | 27 |
а как же dynamic_cast<> ? Что может заменить его механизм?
времена экранов в 15 см прошли подобные приведения явно выделяют себя на фоне кода, а вот С-подобные можно не заметить в длинной строке.
0
|
74 / 37 / 3
Регистрация: 23.09.2012
Сообщений: 408
|
|
03.02.2013, 20:36 | 28 |
soon, тогда труднее прослеживать приоритет действий + выглядит крайне некрасиво, смотреть неудобно.
Мне скрин кинуть? Займут память + время. Можно конечно, не временные переменные, а define использовать. Но это как-то странно Добавлено через 42 секунды Не по теме: MrGluck, вы в кинотеатре кодите?
0
|
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
|
|
03.02.2013, 20:54 | 30 |
Не надо) Ок, выражение на полэкрана - это действительно серьёзная проблема?
Честно сомневаюсь, что компилятор с этим не справиться. Но всё может быть, да. Добавлено через 2 минуты
0
|
74 / 37 / 3
Регистрация: 23.09.2012
Сообщений: 408
|
|
03.02.2013, 20:57 | 31 |
gray_fox, "компилятор с этим не справится" - программист тоже должен думать об оптимизации. Иначе, все скатится к быдлокодерам.
Пёс, Вы не поняли. Программисту не всегда обязательно знать, как меняются внутренние переменные системы. Ему важно лишь знать, что переменные, которыми он оперирует не меняются. Добавлено через 2 минуты Еще, это может быть куда удобней.
0
|
41 / 31 / 5
Регистрация: 03.02.2013
Сообщений: 61
|
|
03.02.2013, 21:16 | 32 |
любой нормальный компилятор выкидывает лишние переменные, а если с переменными выполняется много действий - то держит их в регистре.(или можно ручками указать перед объявлением переменной register)
более того, ассемблерный листинг static_cast<float> и (float) одинаков. имхо, разница лишь в кол-ве написанных букв.
0
|
Пёс
|
03.02.2013, 21:19
#33
|
Не по теме: Холливар продолжается...
0
|
gray_fox
|
03.02.2013, 21:25
#34
|
0
|
41 / 31 / 5
Регистрация: 03.02.2013
Сообщений: 61
|
|
03.02.2013, 21:43 | 35 |
0
|
Форумчанин
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
03.02.2013, 21:46 | 36 |
0
|
03.02.2013, 21:46 | |
03.02.2013, 21:46 | |
Помогаю со студенческими работами здесь
36
Использование static_cast Перегрузка static_cast static_cast, исключение Reinterpret_cast отличие от static_cast Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |