Классы в Си++
Автор: WinterWel • Июнь 7, 2022 • Лабораторная работа • 1,114 Слов (5 Страниц) • 176 Просмотры
Министерство науки и высшего образования Российской Федерации
Кафедра «Информационная безопасность систем и технологий»
ОТЧЕТ о лабораторной работе №4
«Классы в Си++ »
Дисциплина: Языки программирования
Группа: 20ПИ1 Выполнил:
Количество баллов:
Дата сдачи:
Принял:
2021
- Цель работы
- Освоить создание классов в программах на Си++, работу с конструкторами и деструкторами классов, перегрузку операторов для классов.
- Задание к практической работе
- Реализовать класс String с конструктором по умолчанию, конструктором копирования, деструктором и перегруженным оператором operator<< для вывода строки в поток.
- Добавить к реализации класса конструктор инициализации Си-строкой.
- Написать программу для работы с классом String, демонстрирующую его возможности.
- Добавить к реализации класса перегруженный operator>>, позволяющий вводить значения строки из потока ввода. Модифицировать программу для демонстрации возможностей оператора.
- Добавить к реализации класса перегруженные операторы присваивания и унарного минуса. Модифицировать программу для демонстрации возможностей операторов.
- . Добавить к реализации класса еще один перегруженный бинарный operator+ для выполнения операции конкатенации (сцепления) двух строк.
Модифицировать программу для демонстрации возможностей оператора.
- Результаты работы
- Был реализован класс String с конструктором по умолчанию, конструктором копирования, деструктором и перегруженным оператором operator<< для вывода строки в поток. Текст методов показан на рисунке 1.
[pic 1]
Рисунок 1- методы класса String
- К реализации класса был добавлен конструктор инициализации Систрокой, изображенный на рисунке 2.
[pic 2]
Рисунок 2 - конструктор инициализации Си-строкой
- Для демонстрации возможностей класса String была написана программа. Её текст показан на рисунке 3. Результат выполнения программы изображен на рисунке 4.
[pic 3]
Рисунок 3 - код программы, показывающей возможности класса String
[pic 4]
Рисунок 4 - результаты программы
- Был добавлен перегруженный operator>>, позволяющий вводить значения строки из потока ввода. При реализации оператора ввода допускалось то, что длина вводимой строки будет не больше 10000 символов. Текст оператора ввода изображен на рисунке 5.
[pic 5]
Рисунок 5 - перегруженный оператор ввода
- Были добавлены перегруженные операторы присваивания и унарного минуса. Код операторов показан на рисунке 6.
[pic 6]
Рисунок 6 - операторы присваивания и унарного минуса
- Был добавлен к реализации класса еще один перегруженный бинарный operator+ для выполнения операции конкатенации двух строк. Он изображен на рисунке 7. Программа для демонстрации возможностей оператора была модифицирована для демонстрации возможностей операторов, добавленных в предыдущих пунктах. Текст программы находится в приложении А. Результат выполнения программы показан на рисунке 8.
[pic 7]
Рисунок 7 - оператор конкатенации
[pic 8]
Рисунок 8 - результат работы модифицированной программы
- Вывод: был создан класс в программе на Си++. Была освоена работа с деструкторами и конструктами классов, также были получены навыки в области перегрузки операторов класса.
ПРИЛОЖЕНИЕ А
ТЕКСТ ПРОГРАММЫ, ДЕМОНСТРИРУЮЩЕЙ ВОЗМОЖНОСТИ КЛАССА STRING
#include<iostream> #include<cstring> using namespace std;
class String
{
char * val; int len;
public:
String(); ~String();
...