![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Если не ошибаюсь, простое преобразование complex -> double в принципе невозможно. Так как действительное число - частный случай комплексного (мнимая часть равна нулю). Введение подобного преобразования ведет к увеличению вероятности ошибки при программировании. По хорошему, программист (пользователь класса) должен себе полностью отдавать отчет, когда делает такое преобразование. Поэтому подобные преобразования наоборот усложняют (чтобы было видно, что именно делается в данной строке)!
Это сообщение отредактировал(а) bsa - 8.9.2009, 23:23 |
|||
|
||||
S3_ |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 14.10.2007 Репутация: нет Всего: нет |
Я их перегрузил (в самом первом моем сообщении строчка кода номер "7")
Угу, не знаю ![]()
Да, я писал этот класс, и возникла вот такой вот вопрос, как его присвоить, например, double... Так что присваивать double только значение real неправильно. ![]() |
||||||
|
|||||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
S3_, я с точки зрения математики высказался: вещественный числа - это подобласть пространства комплексных чисел. Т.е. комплексное число содержит больше информации, чем действительное. Даже компилятор, когда ты присваиваешь переменную более точного типа менее точному (float = double или char = int, например), всегда выдасть предупреждение. А ты делаешь конвертацию. Повторяю, с точки зрения правильного проектирования класса, это делать нельзя.
|
|||
|
||||
Леопольд |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 3 Всего: 13 |
В данном случае это не важно, я имел ввиду что пользовательские преобразования типов надо исользовать только там где необходимо и таким образом, чтобы ни у кого не вызывало недоумение неожиданное поведение программы. Эти преобразования иногда сложно заметить в ходе выполнения программы. Вообще, надо пытаться программировать так, чтобы можно было держать в голове как можно меньше деталей работы отдельных частей программы и не боятся при этом совершить обшибку. Это сообщение отредактировал(а) Леопольд - 9.9.2009, 20:15 -------------------- вопросов больше чем ответов |
|||
|
||||
IKM2007 |
|
|||
![]() Зима близко ![]() ![]() Профиль Группа: Участник Сообщений: 702 Регистрация: 26.4.2008 Где: olmedreca Репутация: 3 Всего: 40 |
Я не говорил именно о твоем примере. -------------------- "К чёрту обстоятельства, я создаю возможности." Брюс Ли |
|||
|
||||
choiming |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 9.8.2009 Репутация: нет Всего: нет |
да конечно очень нужная вещь
|
|||
|
||||
S3_ |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 14.10.2007 Репутация: нет Всего: нет |
Я это знаю и придерживаюсь этого же мнения, ты наверное меня на так понял ![]() ![]() ![]()
Ой, сорри, не допонял ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |