OOP5
.docxМіністерство освіти і науки України
Запорізький національний технічний університет
Кафедра програмних засобів
Звіт
з лабораторної роботи №5
«Перевантаження операцій»
Виконав
ст. гр. КНТ-423 В.В. Білевський
Прийняв
ст. викл. Н. О. Миронова
Запоріжжя, 2014
5.1Мета роботи: Навчитись використовувати перевантаження математичних операцій та операцій введення-виведення при розробці класів.
5.2 Завдання до роботи: Створити динамічний клас для роботи з рядками (послідовностями символів). Максимальна довжина послідовності – 65535, код завершення послідовності – нуль. Здійснити перевантаження символів операцій:
"=" – динамічне присвоєння,
" << " , " >> " – консольне введення-виведення значень;
" << " , " >> " - введення із файлу і виведення у файл.
Передбачити можливість множинного введення
5.3 Текст програми:
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
class str{
char s[65536];
public:
str& operator>>(ofstream &ofs);
str& operator <<(ifstream &ifs);
str& operator=(str &a);
friend ostream& operator<<(ostream& ,str&);
friend istream& operator>>(istream& ,str&);
};
str& str::operator >>(ofstream &ofs){
cout<<"Stroka sohranena v faile"<<endl;
ofs<<s;
return *this;
}
str& str::operator <<(ifstream &ifs){
cout<<"Stroka vzyata iz faila"<<endl;
ifs>>s;
return *this;
}
ostream& operator<< (ostream& a, str& b){
a<<b.s;
return a;}
istream& operator>> (istream& a, str& b){
a>>b.s;
return a;}
str& str::operator =(str &a){
int i=0;
while(a.s[i]){
s[i]=a.s[i];
i++;}
return *this;
}
int main(){
ifstream ifs;
ifs.open("file.txt");
str obj1,obj2,obj3;
obj1<<ifs;
cout<<obj1;
ifs.close();
cin>>obj2;
cout<<obj2;
ofstream ofs("file.txt");
ofs<<obj2;
ofs.close();
}
5.4 Знімки з єкрану:
Рисунок 5.1- Робота програми