| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > привдение типов в стиле С и в С++ |
| Автор: Royan 7.10.2004, 18:56 | ||
| Всех приветствую очередной проблемой заведшей меня в ступор. Пусть имеем:
Добавлено @ 19:02 Я думаю ясно, что вопрос - почему static_cast работает так? |
| Автор: Fantasist 7.10.2004, 21:39 | ||
| Боюсь, что это не static_cast. Дело в том, что выражение 1/num_steps будет интерпретированно как целочисленное деление, так как по умолчанию литерал "1" - это число целого типа. Так что значение этого выражения 0, и к чему ты его не приводи оно будет нулем. Другое дело, выражение (double)1/num_steps - здесь явно указанно, что еденицу надо считать типом double, а раз чеслитель дробного типа, то и деление будет соответсвующее. Эквивалент со static_cast:
|
| Автор: sergejzr 7.10.2004, 21:45 | ||
| Конечно, сперва выражение эвалуируется, а потом уже каст А почему не сделать так:
|
| Автор: Royan 8.10.2004, 11:13 |
| Fantasist sergej.z Спасибо за разъяснения и мысли, что называется просёк поляну. |