Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
ОТЧЕТ
По лабораторной работе №3
Тема
«Перегрузка операторов.»
Кишинев 2021.
Лабораторная работа №3
Цели работы:
Изучение необходимости перегрузки операторов;
изучение синтаксиса определения операторов;
изучение типов операторов;
изучение форм перегрузки.
Вариант: 7
Задание:
Задание А
#include <iostream>
class Bool
{
int n;
public:
Bool() : n(0) {}
Bool(int z) : n(z) {}
int main()
{
Bool x(1);
Bool y(0);
Результат А
Задание Б
include <iostream>
#include<string>
using namespace std;
class String
{
friend bool operator == (String string1, String
string2);
friend bool operator == (String string1, char* mem);
friend bool operator == (String string1, const char*
mem);
friend bool operator != (String string1, String
string2);
friend bool operator != (String string1, char* mem);
friend bool operator != (String string1, const char*
mem);
friend bool operator > (String string1, String string2);
friend bool operator > (String string1, char* mem);
friend bool operator > (String string1, const char*
mem);
friend bool operator < (String string1, String string2);
friend bool operator < (String string1, char* mem);
friend bool operator < (String string1, const char*
mem);
public:
int Lenght;
char* arr;
String(char *mem) {
Lenght = 0;
SizeAndTrim(mem);
}
~String() {
delete arr;
}
};
int main()
{
cout << endl<< "Create class String with const char in
ctor: ";
String a("Hello ");
cout << a;
cout << endl<< "Create class String with *char in ctor:
";
char* arraychar = new char[6]{
'w','o','r','l','d','\0' };
String b(arraychar);
cout << b;
cout << endl<< "Create class String with String in ctor:
";
String c(a);
cout << c <<endl;
cout << endl << "String < String: " << (a < b);
cout << endl << "String < *char: " << (c < arraychar);
cout << endl << "String < const char: " << (b < "Hello")
<<endl;
cout << endl << "String > String: " << (a > b);
cout << endl << "String > *char: " << (c > arraychar);
cout << endl << "String > const char: " << (b > "Hello")
<<endl;
cout << endl << "Object \"a\" have string: " << a;
cout << endl << "Acces object \"a\" with index[4]: " <<
a[4]<<endl <<endl;
return 0;
}
Результат Б
Вывод: В данной лабораторной работе были изучены и
закреплены практикой такое понятие как перегрузка
операторов: перегрузка операторов присваивания,
сравнения, сложения и индексации. Ее выполнение явилось
основой для применения на практике теоретических знаний
об использовании операторов. Таким образом, можно
судить о широких возможностях, предоставляемых языком
C ++ в отношении манипулирования памятью в желаемом
пользователем направлении