|
2 / 2 / 0
Регистрация: 05.02.2011
Сообщений: 82
|
||||||
Перегрузка операторов08.05.2011, 02:03. Показов 3889. Ответов 6
Метки нет (Все метки)
вот есть такое задание
Для заданного по варианту класса выполнить следующие действия: 1) описать все типы конструкторов и деструктор (по необходимости); 2) переопределить оператор вывода в поток <<; 3) переопределить оператор ввода из потока >>; 4) переопределить заданные по варианту операторы; 5) предусмотреть обработку ошибок. Создать два объекта заданного по варианту класса и на их примере продемонстрировать корректную работу всех перегруженных операторов. Вариант №7 Создать класс треугольник Triangle (хранит стороны a, b, c). Перегрузить операторы: 1) + как унарный метод класса, вычисляющий периметр треугольника; 2) ! как унарную дружественную функцию, проверяющую возможность существования заданного треугольника (ни одна из сторон не может быть равной сумме двух других сторон или превышать ее); 3) <= как бинарный метод класса, сравнивающий длины периметров двух треугольников; 4) == как бинарную дружественную функцию, проверяющую равенство сторон треугольников. я эт задание реализовал вот спомощью такого кода
1) унарного способа перегрузки операторов. Если а=0, то тогда вывести сообщения (а относится к 1 объекту (t1)) 2) бинарный способ перегрузки. Найти сумму а1+а2, т.е а первого треугольника(t1), и а второго треугольника(t2) я не очень разобрался с перегрузками, плиз спасите неуча
0
|
||||||
| 08.05.2011, 02:03 | |
|
Ответы с готовыми решениями:
6
Что такое "перегрузка операторов"? Каковы принципы работы перегруженных операторов и назначение указателя this перегрузка операторов
|
|
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
|||||||
| 08.05.2011, 10:19 | |||||||
|
1. Поля треугольника - вещественные.
2.
operator<= объявлено правильно. Но из объявления параметра надо убрать ссылку. Или передавать по константной ссылке - правый аргумент не изменяется. operator== объявлено НЕправильно! Это должна быть дружественная функция с двумя параметрами operator! объявлено правильно. Но из объявления параметра надо убрать ссылку. Или передавать по константной ссылке - правый аргумент не изменяется. В функции вывода из объявления параметра надо убрать ссылку. Или передавать по константной ссылке - правый аргумент не изменяется.
0
|
|||||||
|
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
|
||||||||
| 08.05.2011, 11:32 | ||||||||
|
В догонку. Стороны треугольника, как сказал предыдущий оратор, действительно лучше сделать вещественными числами. Обратите внимание, что два вещественных числа из-за особенности архитектуры никогда не будут равны. Надо сверять абсолютное значение их разности с неким эпсилоном -- точностью. Например.
0
|
||||||||
|
2 / 2 / 0
Регистрация: 05.02.2011
Сообщений: 82
|
|||
| 08.05.2011, 14:46 [ТС] | |||
|
Добавлено через 2 минуты
0
|
|||
|
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
|
|||||||
| 08.05.2011, 18:57 | |||||||
|
Ну вот класс, который реализует все означенное. operator~ -- в качестве унарного a == 0. Только не "выводит сообщение", а возвращает true. С геттерами и сеттерами, как в книжке.
1
|
|||||||
|
2 / 2 / 0
Регистрация: 05.02.2011
Сообщений: 82
|
|
| 10.05.2011, 00:47 [ТС] | |
|
а можете объяснить какие операторы относятся к бинарным, а какие к унарным? и что за операторы можно использовать из бинарных в унарных, и из унарых в бинарных операторы?
0
|
|
|
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
|
| 10.05.2011, 00:50 | |
|
Все операции, у которых два аргумента - бинарные. У которых один аргумент - унарные.
0
|
|
| 10.05.2011, 00:50 | |
|
Помогаю со студенческими работами здесь
7
Перегрузка операторов С++ Перегрузка операторов Перегрузка операторов
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|