Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

OOP5

.docx
Скачиваний:
13
Добавлен:
07.02.2016
Размер:
26.57 Кб
Скачать

Міністерство освіти і науки України

Запорізький національний технічний університет

Кафедра програмних засобів

Звіт

з лабораторної роботи №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- Робота програми

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]