Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Перегрузка операций и фунций

Ответить
Настройки темы
C/C++ - Перегрузка операций и фунций

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Помогите пожалуйста написать программу
задание:
Ввести класс для работы с объектом «множество целых чисел». Реализовать следующие операции:
а) разность двух множеств (операция –);
б) добавление элемента во множество (операция +).

Отправлено: 20:17, 12-04-2012

 

ИО Капитана Очевидности


Contributor


Сообщения: 5387
Благодарности: 1105

Профиль | Отправить 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;
}
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



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Перегрузка операций и фунций

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Не перемещается роль хозяина операций 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




 
Переход