161 / 153 / 92
Регистрация: 18.11.2015
Сообщений: 677
|
|||||||||||
1 | |||||||||||
Перегрузка операторов04.03.2016, 20:00. Показов 581. Ответов 4
Метки нет Все метки)
(
Привет, у меня есть код, но когда я его делал у меня возникла пара вопросов.
2. Почему мне нужно писать две перегрузки ==, если я хочу сравнить chance с разными типами данных. Один для float другой для int? И как сделать преобразование автоматическим в таких случаях (чтобы он сам определял с каким типом данных сравнивает, и основываясь на этом, менял значение chance)
0
|
|
04.03.2016, 20:00 | |
Ответы с готовыми решениями:
4
Что такое "перегрузка операторов"? Каковы принципы работы перегруженных операторов и назначение указателя this
Перегрузка операторов Перегрузка операторов |
52 / 52 / 24
Регистрация: 24.12.2011
Сообщений: 133
|
|
04.03.2016, 20:14 | 2 |
Потому что в chance хранится вещественное число от 0 до 1. При преобразовании float в int дробная часть отбрасывается, и остается просто целочисленный ноль.
0
|
161 / 153 / 92
Регистрация: 18.11.2015
Сообщений: 677
|
|
04.03.2016, 20:22 [ТС] | 3 |
А как сделать так, чтобы при преобразовании в int дробная часть не отбрасывалась? Чтобы из 0.14 я получил 14, например.
0
|
52 / 52 / 24
Регистрация: 24.12.2011
Сообщений: 133
|
|
04.03.2016, 20:47 | 4 |
meJevin, чтобы из 0.14 получить 14 - нужно умножить на сто и округлить, как ты сейчас и делаешь. Нет ничего плохого в том, чтобы писать две перегрузки, особенно если они работают по-разному.
1
|
Модератор
![]() 12629 / 10127 / 6097
Регистрация: 18.12.2011
Сообщений: 27,158
|
||||||
04.03.2016, 21:08 | 5 | |||||
Как-то это некошерно. Получается, что если "tempChance == number" принимает значение "истина", то вернуть "истину", если "ложь", то вернуть "ложь".
Правильнее будет просто
1
|
04.03.2016, 21:08 | |
Помогаю со студенческими работами здесь
5
Перегрузка операторов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |