Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Пример программы с использованием перегрузкий операторовДля класса “студент” перегрузить операцию “>” (большим считается тот студент, рейтинг которого выше) и перегрузить операцию “+” (операция увеличивает на заданное значение рейтинг студента). Перегрузить операцию присваивания. Перегрузить операции ввода и вывода. Создать массив объектов класса “студент”. Увеличить рейтинг каждого студента на произвольное значение. Найти студента с наименьшим рейтингом.
#include <iostream.h> class student { char FIO[20]; // ФИО студента char gr[10]; // Группа студента float reit; // Рейтинг студента public: friend istream & operator>>(istream &r, student &a) { cout<<"\n Vvod fio: "; cin>>a.FIO; cout<<"\n Vvod gruppi: "; cin>>a.gr; cout<<"\n Vvod reitinga:"; cin>>a.reit; return r; } friend ostream & operator<< (ostream &r, student a) { return r<<"\n FIO: "<<a.FIO<<"\n Gruppa: "<<a.gr<<"\nReiting: "<<a.reit; } char * rFIO() // Функция, возвращающая ФИО { return FIO; } char * rgr() // Функция, возвращающая группу { return gr; } float rreit() // Функция, возвращающая рейтинг { return reit; } int operator > (student &a) { return (reit > a.reit? 1:0); } student & operator =(student &a) { strcpy(this->FIO, a.FIO); strcpy(this->gr, a.gr); this->reit=a.reit; return *this; } student operator +(float a) { student temp; temp.reit=this->reit+a; strcpy(temp.FIO,this->FIO); strcpy(temp.gr,this->gr); return temp; } }; int main() { student mas[10]; // массив объектов класса int n; cout<<"\n vvod n"; cin>>n; for (int i=0; i<n; i++) cin>>mas[i]; for (int i=0; i<n; i++) cout<<mas[i]; // Поиск минимального рейтинга int imin=0; for (int i=1; i<n; i++) if (mas[imin]>mas[i]) imin=i; cout<<"\n\n Min reiting: "<<mas[imin].rreit(); cout<<mas[imin]; //Изменение рейтинга int x; cout<<"\n Enter increment reitinga:"; cin>>x; for (int i=0; i<n; i++) cout<<mas[i]+x; }
Учебное издание
Вадим Юрьевич Наумов Ольга Владиславовна Гостевская
Объектно-ориентированное программирование на С++. Лабораторный практикум. Учебное пособие
Редактор Е. А. Пичугина
Темплан 2014 г. Позиция №___. Лицензия ИД № 04790 от 18.05.2007 года Подписано в печать _____________. Формат 60 х 84 1/16. Бумага газетная. Печать офсетная. Усл. печ. л. ________. Уч.-изд. л. ______. Тираж экз. Заказ _____________.
Волгоградский государственный технический университет. 400005 Волгоград, просп. Ленина, 28.
РПК “Политехник” Волгоградского государственного технического университета. 400005 Волгоград, ул. Советская,35.
|