1 / 1 / 0
Регистрация: 24.04.2014
Сообщений: 66
|
||||||
1 | ||||||
Преобразования типов. Определить тип переменной24.04.2014, 22:00. Показов 2503. Ответов 8
Метки нет Все метки)
(
Всем привет
Недавно начал изучать язык C++ по книжке "Объектно-ориентированное программирование в C++" и там есть тема (Преобразование типов) вот пример из этой темы:
Если допустим я запишу вот так...... int var1=10; int sum=static_cast<double>(var1)*10; В результате у переменной sum какой тип данных будет?? int или double. И второй вопрос есть ли смысл от этого преобразование "как в примере из книжке" если можно сразу у этой переменной объявить тип double и не мудрить???
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
24.04.2014, 22:00 | |
Ответы с готовыми решениями:
8
Как определить тип переменной? Как определить тип переменной, ссылающейся на определённый класс? Нужен именно тип, а не ссылка на обьект!
|
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
|
|
24.04.2014, 22:18 | 3 |
dicros, а ты пробовал запустить данный пример?
Первое: ошибка символа в 7 строке, там знак деления перевёрнут. Второе: чтоб увидеть результат надо задержать экран функцией getch(); (её написать перед return 0) и заголовочный файл #include <conio.h> для её работы. Ну русские символы я опущу - сам нагуглиш. Результат выполнения: в первой строке будет число "211509811", а во второй та цифра которая была указана. В общем то не по теме, но я ответа не знаю по поводу данного вопроса, как то не пользовался..
1
|
1 / 1 / 0
Регистрация: 24.04.2014
Сообщений: 66
|
|
24.04.2014, 22:41 [ТС] | 4 |
villu, спасибо буду знать теперь.
Izual, пример запускать пробовал раньше, а щас только для примера переписал поэтому на ошибку не обращай внимания. Хорошо что ты напомнил про задержку и про русский язык. Скажите пожалуйста каким образом это все лучше реализовать??? Я делаю вот так setlocale(0, "Rus"); //Это для поддержки русского языка system("pause"); // Для задержки Может есть какие другие способы более универсальные и правильные?
0
|
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
|
|
25.04.2014, 00:29 | 5 |
dicros, тип данных естественно останется тем который заявлен, однако результат вычисления разный - это заставляет задуматься над способом приминения.
Для чего лучше?.. Не забегайте в перёд, всему своё время, придёт время и если это нужно будет, то оно проявит себя. (аналогия с пословицей: "Если гора не идёт к Магомеду, Магомед идёт к горе") Пользуйся тем что работает, этого будет достаточно. Оптимизация будет когда она будет необходимо и когда придёт знание и толчок к постижению этого знания.
0
|
16466 / 8966 / 2198
Регистрация: 30.01.2014
Сообщений: 15,567
|
||||||
25.04.2014, 00:40 | 6 | |||||
Результат выражения будет double. Потом будет автоматическое преобразование к int, обрезка дробной части. В переменной sum будет целое число.
Если взять более интересный пример,
1
|
1 / 1 / 0
Регистрация: 24.04.2014
Сообщений: 66
|
|
25.04.2014, 00:51 [ТС] | 7 |
Izual, дело в том что не хочется привыкать к неправильному написанию, вы то уже много этим занимаетесь и точно знаете какой из способов более универсальный и правильный и можете дать совет так сказать.
DrOffset, да спасибо я уже понял, просто когда читал меня смутили вот эти строки из книжки
0
|
16466 / 8966 / 2198
Регистрация: 30.01.2014
Сообщений: 15,567
|
|
25.04.2014, 00:58 | 8 |
Он влияет на результат выражения. Т.е. если один из операндов double, то и результат тоже будет double.
1
|
Комп_Оратор)
![]() |
||||||
25.04.2014, 01:22 | 9 | |||||
![]() Решение
double шире. То есть, расширительное преобразование приведёт к тому, что целое участвующее в арифметической операции с double, будет автоматически (неявно) преобразовано к double. Это значит, что:
![]() ![]()
3
|
25.04.2014, 01:22 | |
Помогаю со студенческими работами здесь
9
Определить тип переменной Определить тип переменной Как определить тип переменной? Как определить тип переменной? Как определить тип переменной?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |