|
3 / 3 / 3
Регистрация: 31.10.2010
Сообщений: 120
|
||||||||||||||||
Перезагрузка operator ==13.11.2011, 02:40. Показов 4590. Ответов 45
Метки нет (Все метки)
Тренируюсь и пишу клас комплексных чисел. Проблема с перезагнрузкой оператора сравнения да и другие перезагрузки не хотят использоваться. Как решить эту проблему? Ведь желательно передавать константные ссылки? Но к ним уже стает проблематично использовать перезагрузки..
И еще вопрос к try catch: Посоветуйте как правильно отловить ошибку с делением на 0.
0
|
||||||||||||||||
| 13.11.2011, 02:40 | |
|
Ответы с готовыми решениями:
45
перезагрузка operator + Перезагрузка operator - Перезагрузка операторов "неоднозначный operator" |
|
Заблокирован
|
||
| 15.11.2011, 14:26 | ||
|
0
|
||
|
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||
| 15.11.2011, 14:27 | ||
|
0
|
||
|
Заблокирован
|
|
| 15.11.2011, 14:28 | |
|
0
|
|
|
4226 / 1799 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||
| 15.11.2011, 14:41 | |||
|
1. Ты вычисляешь, сколько залить бензина в бак. Результат не может быть ни бесконечным, ни неопределённым, ни отрицательным, ни имеющим мнимую часть. А ты поделил на ноль. (x/y)*y=x, z*0=0, при любом x<>0, z=x/y, получаем, что при y=0 будет (x/0)*0=x, z*0=x, 0=x, 0<>0. Это не допустимо математически. 2. Ты говоришь таксисту адрес: страна Выдумляндия, область Кисельных Облаков, город Молокореченск, улица Сказочников, дом минус восемь с половиной. Это не существующий адрес, но вычислять его не надо. Добавлено через 4 минуты
0
|
|||
|
Заблокирован
|
||
| 15.11.2011, 14:45 | ||
|
"извините, но делитель нулем быть не может. введите другой делитель" и тп. это ШТАТНАЯ работа любого морального терминала - проверить что введёт пользователь. Накой чорт тут вообще может понадобится бросать исключения? Кто их будит обрабатывать? Блондинка, которая тыкает в сенсорный экранчик терминала, пытаясь внести деньги на счет?
0
|
||
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
||||||
| 15.11.2011, 14:46 | ||||||
|
0
|
||||||
|
Заблокирован
|
||
| 15.11.2011, 14:50 | ||
|
Это при том, что инкапсуляция гарантирует пользователю, что он может пользоваться классом ничего не зная о его устройстве. Итого: нарушение инкапсуляции.
0
|
||
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 15.11.2011, 14:51 | |
|
0
|
|
|
Заблокирован
|
|
| 15.11.2011, 14:53 | |
|
0
|
|
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|||||
| 15.11.2011, 14:55 | |||||
|
0
|
|||||
|
Заблокирован
|
|
| 15.11.2011, 14:56 | |
|
0
|
|
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
||
| 15.11.2011, 14:57 | ||
|
0
|
||
|
Заблокирован
|
||
| 15.11.2011, 14:58 | ||
|
Запросить данные заного, или Вернуть код ошибки, или ещё что либо - зависит от задачи, и фантазии автора класса. Вопрос: ситуация с кривыми входными данными вполне ожидаемая. С какой пор вполне ожидаемые ситуации вдруг стали исключительными?
0
|
||
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
||
| 15.11.2011, 14:59 | ||
|
0
|
||
|
Заблокирован
|
||
| 15.11.2011, 14:59 | ||
|
0
|
||
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 15.11.2011, 15:03 | |
|
Bers, а ничего, что живому человеку пофиг на всё, в том числе на то, на каком языке написана программа и как обрабатываются ошибки? Ему надо в одну формочку вбить данные и в другой получить результат. Среда сама всё это обработает. Исключения как раз для неё и кидаются, а не для блондинки, которая строку вместо числа ввела.
0
|
|
|
Заблокирован
|
|||
| 15.11.2011, 15:05 | |||
|
Они не имеют ни малейшего отношения ни к пользвателям, ни к самому классу. Например - операция записи на диск провалилась, потому что в процессе записи кончилось место на диске (ОС многозадачная, и в этот самый момент другой процесс тоже записывал. Вот, не хватило места). Эта ситуация возникла не по причине не_валидных данных, и не по причине программной ошибки. Это исключительная ситуация, которую класс не в состоянии никак заранее предсказать. Эту ошибку вызывающая сторона так же не в состоянии обработать, если она не в курсе почему произошла трагедия. Что бы она была в курсе, она должна знать устройство класса. Если вы пишите класс, который что бы надёжно работал - требовал бы знать его внутренности, то ваши классы - нарушение инкапсцуляции, и безотственность. Другими словами - быдлокод Добавлено через 1 минуту И ответил ему в соотвествии с тем, что он имел ввиду. Это понятно? Если это понятно, то какие ещё есть вопросы? Что тогда не понятно?
0
|
|||
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 15.11.2011, 15:19 | |
|
Bers, ну да, я всегда утверждал, что весь стл - быдлокод, вектор в частности. Ишь ты, чтобы корректно с ним работать, надо знать, что он std::out_of_range кидает, падлюка! Инкапсуляция нарушена, демократия в опасности.
0
|
|
|
Заблокирован
|
||
| 15.11.2011, 15:27 | ||
|
А я знал на самом деле, что обязательно кто нибудь скажет про стл. Потому что вы все говорите одно и тоже. Выход за пределы диапазона массива - есть программная ошибка в 99% случаев. Вектор кидает исключение именно потому, что если их не обработать - будит бабах! Именно потому, что бы услужливо показать вызывающей стороне, что у неё программная ошибка. Оказывает услугу. Что бы программист-пользователь в кратчайшее время узнал, что что-то не так с его кодом. Что характерно, если вектор не не кинет исключение (без проверки диапазона), то исключение выкинет ище какая нибудь хрень. В любом случае будит крушение. Я ни разу не ставил ловушку на такое исключение. Я принципе не знаю как можно обработать программную ошибку. Если такое исключение сработало, нужно включать отладчик, и дебажить до посинения. Ловушки тут не помогут Хотя я лично в случае если интерпритирую ситуацию как вероятную ошибку программиста в вызывающей стороне, никаких исключений все равно не кидаю. А зажигаю ассерт, который не заламывает процесс. И делаю откат операции.
0
|
||
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
||
| 15.11.2011, 15:34 | ||
|
Bers, ага, т.е. то, что произошёл выход за границы массива - беда, и нужно кидать исключение, а то, что в каких-то сложных вычислениях произошло деление на нуль - фигня, само поправится.
Не по теме: P.S. Про stl я уже давно сказал, но вы, по-видимому, не желали слушать. Добавлено через 57 секунд Добавлено через 33 секунды А вообще - ассертов в релизе быть не должно, они исключительно для отладки.
0
|
||
| 15.11.2011, 15:34 | |
|
Class & operator's |Error: undefined reference to operator
Вызов operator[] через operator[] const
Реализация operator + через operator += Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
|
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи.
. . .
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|