Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Приведение ко встроенному типу, Есть класс,нужно его привести~ к Double 
:(
    Опции темы
bsa
Дата 8.9.2009, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Если не ошибаюсь, простое преобразование complex -> double в принципе невозможно. Так как действительное число - частный случай комплексного (мнимая часть равна нулю). Введение подобного преобразования ведет к увеличению вероятности ошибки при программировании. По хорошему, программист (пользователь класса) должен себе полностью отдавать отчет, когда делает такое преобразование. Поэтому подобные преобразования наоборот усложняют (чтобы было видно, что именно делается в данной строке)!

Это сообщение отредактировал(а) bsa - 8.9.2009, 23:23
PM   Вверх
S3_
  Дата 9.9.2009, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 14.10.2007

Репутация: нет
Всего: нет



Цитата(IKM2007 @  8.9.2009,  18:58 Найти цитируемый пост)
Например, для класса Complex вы должны  были обьявить оператор <<, чтобы напечатать число так: "(a, b)", но забыли определить оператор <<.


Я их перегрузил (в самом первом моем сообщении строчка кода номер "7")

Цитата(IKM2007 @  8.9.2009,  19:49 Найти цитируемый пост)
Да, но врядли автор топика знает про proxy-классы, если задает такой вопрос.

 Угу, не знаю   smile 

Цитата(bsa @  8.9.2009,  23:22 Найти цитируемый пост)
Если не ошибаюсь, простое преобразование complex -> double в принципе невозможно. Так как действительное число - частный случай комплексного (мнимая часть равна нулю).


Да, я писал этот класс, и возникла вот такой вот вопрос, как его присвоить, например, double... Так что присваивать double только значение real неправильно. smile 
PM MAIL   Вверх
bsa
Дата 9.9.2009, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



S3_, я с точки зрения математики высказался: вещественный числа - это подобласть пространства комплексных чисел. Т.е. комплексное число содержит больше информации, чем действительное. Даже компилятор, когда ты присваиваешь переменную более точного типа менее точному (float = double или char = int, например), всегда выдасть предупреждение. А ты делаешь конвертацию. Повторяю, с точки зрения правильного проектирования класса, это делать нельзя.
PM   Вверх
Леопольд
Дата 9.9.2009, 20:14 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 3
Всего: 13



Цитата(S3_ @  9.9.2009,  18:49 Найти цитируемый пост)
Да, но врядли автор топика знает про proxy-классы, если задает такой вопрос.

 Угу, не знаю

В данном случае это не важно, я имел ввиду что пользовательские преобразования типов надо исользовать только там где необходимо и таким образом, чтобы ни у кого не вызывало недоумение неожиданное поведение программы. Эти преобразования иногда сложно заметить в ходе выполнения программы.

Вообще, надо пытаться программировать так, чтобы можно было держать в голове как можно меньше деталей работы отдельных частей программы и не боятся при этом совершить обшибку.

Это сообщение отредактировал(а) Леопольд - 9.9.2009, 20:15


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
IKM2007
Дата 10.9.2009, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зима близко
**


Профиль
Группа: Участник
Сообщений: 702
Регистрация: 26.4.2008
Где: olmedreca

Репутация: 3
Всего: 40



Цитата(S3_ @  9.9.2009,  18:49 Найти цитируемый пост)
Я их перегрузил (в самом первом моем сообщении строчка кода номер "7")

Я не говорил именно о твоем примере.


--------------------
"К чёрту обстоятельства, я создаю возможности."
Брюс Ли
PM MAIL Skype   Вверх
choiming
Дата 11.9.2009, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 9.8.2009

Репутация: нет
Всего: нет



да конечно очень нужная вещь
PM MAIL   Вверх
S3_
Дата 12.9.2009, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 14.10.2007

Репутация: нет
Всего: нет



Цитата(bsa @  9.9.2009,  20:03 Найти цитируемый пост)
S3_, я с точки зрения математики высказался: вещественный числа - это подобласть пространства комплексных чисел. Т.е. комплексное число содержит больше информации, чем действительное. Даже компилятор, когда ты присваиваешь переменную более точного типа менее точному (float = double или char = int, например), всегда выдасть предупреждение. А ты делаешь конвертацию. Повторяю, с точки зрения правильного проектирования класса, это делать нельзя. 


Я это знаю и придерживаюсь этого же мнения, ты наверное меня на так понял smile Конечно нельзя так делать как я   smile 

 smile 


Цитата(IKM2007 @  10.9.2009,  14:38 Найти цитируемый пост)
Цитата(S3_ @  9.9.2009,  18:49 Найти цитируемый пост)
Я их перегрузил (в самом первом моем сообщении строчка кода номер "7")

Я не говорил именно о твоем примере. 


Ой, сорри, не допонял  smile 


PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0787 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.