|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Перегрузка операций и фунций |
|
C/C++ - Перегрузка операций и фунций
|
Новый участник Сообщения: 1 |
Помогите пожалуйста написать программу
задание: Ввести класс для работы с объектом «множество целых чисел». Реализовать следующие операции: а) разность двух множеств (операция –); б) добавление элемента во множество (операция +). |
|
Отправлено: 20:17, 12-04-2012 |
ИО Капитана Очевидности Сообщения: 5387
|
Профиль | Отправить PM | Цитировать Пиши так
class TMyMany { // Закрытые поля и методы класса public: // Открытые свойства и методы класса // А здесь объявляем методы переопределённых операторов TMyMany operator+ (const TMyMany &Other); TMyMany operator- (const TMyMany &Other); TMyMany& operator= (const TMyMany &Other); }; TMyMany TMyMany::operator+ (const TMyMany &Other) { TMyMany New; /// Код сложения данных объекта this с данными объекта Other return New; }; TMyMany TMyMany::operator- (const TMyMany &Other) { TMyMany New; /// Код вычитания из данных объекта this данных объекта Other return New; } TMyMany& TMyMany::operator= (const TMyMany &Other) { /// Код копирования данных объекта Other в поля объекта this return *this; } Other - это константная ссылка на другой объект, из которого берутся дополнительные сведения Оператор "=" позволяет переопределить операцию присваивания. В принципе это не обязательно, так как для большинства классов компилятор автоматически создаёт деструктор, конструктор по-умолчанию, конструктор копирования и оператор присваивания. Однако если поля объекта - это указатели на другие объекты, то эти методы придётся писать самому. Обратите внимание, что оператор присваивания возвращает изменяемую ссылку на самого себя. Это нужно для того, чтобы правильно работал код вида Obj1 = Obj2 = Obj3; В принципе, операторы сложения/вычитания для объектов определённых классов можно прописать и как обычные внешние функции. Только в этом случае нельзя будет обращаться к закрытым полям первого объекта TMyMany operator+ (const TMyMany &First, const TMyMany &Second); TMyMany operator- (const TMyMany &First, const TMyMany &Second); |
------- Отправлено: 03:54, 13-04-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Не перемещается роль хозяина операций | kapitanvagin | Microsoft Windows NT/2000/2003 | 8 | 16-12-2011 10:48 | |
CMD/BAT - [решено] Считывание имени папки для операций | Starter1 | Скриптовые языки администрирования Windows | 9 | 07-06-2011 19:55 | |
Samba - логирование операций с файлами | Batkom | Программное обеспечение Linux и FreeBSD | 2 | 20-07-2010 13:45 | |
PowerShell - Логгирование операций с файлами | samael82 | Скриптовые языки администрирования Windows | 3 | 20-02-2009 05:20 | |
Win98 тормозит после операций перемещения | Avast | Microsoft Windows 95/98/Me (архив) | 1 | 23-07-2007 01:57 |
|