Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2010, 15:16   #1
Lotles
Пользователь
 
Регистрация: 02.10.2010
Сообщений: 86
По умолчанию Static_cast

Подскажи пожалуста
return static_cast<double>(get_num())/get_den();
как это понимать, а то в книге написано, но не объяснено, а в справочнике по-функциям не нашел
Lotles вне форума Ответить с цитированием
Старый 24.10.2010, 16:05   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

get_num вероятно возвращает int, get_den - тоже. int / int даёт int, т.е. результат будет целым с отсечением дробной части. Чтобы такого не произошло, нужно преобразовать результат get_num к типу float или double, т.к. doube / int даёт double (потери знаков после запятой нет).
Можно это записать и так:
Код:
return ((double) get_num()) / get_den();
но тут используется "С-шное" преобразование типов, которое не рекомендуется к использованию в С++ из-за ненаглядности. По сути же внутри (double) всё сведётся к static_cast.
Так же есть dynamic_cast, const_cast, reinterpret_cast. Они все объединены в "С-шном" способе преобразования типов, но он не рекомендуется к использованию.
pu4koff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск