Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Создание динамического массива объектов

Автор:   •  Октябрь 14, 2023  •  Лабораторная работа  •  5,691 Слов (23 Страниц)  •  153 Просмотры

Страница 1 из 23

Министерство науки и высшего образования Российской Федерации

Федеральное государственное бюджетное учреждение

высшего образования

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ

УПРАВЛЕНИЯ И РАДИОЭЛЕТРОНИКИ (ТУСУР)

Кафедра автоматизированных систем управления (АСУ)

Отчет по лабораторной работе №2

по дисциплине

«ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ»

         Выполнил:

 «___» __________ 20__ г.

Проверил:                  

«___» __________ 20__ г.

Томск – 2023

Содержание

  1. Индивидуальное задание.
  2. Тема работы.
  3. Теория.
  4. Результат работы программы.
  5. Вывод.
  6. Листинг программы

Индивидуальное задание

Вариант 12

Экзамен

Имя студента — char

дата — int

оценка — int

Тема работы

Создание динамического массива объектов. Деструктор объекта. Два типа полиморфизма: принудительное приведение типа, перегрузка функций и перегрузка операторов (унарных и бинарных).

Теория

Объекты классов – это своего рода переменные, и они имеют те же возможности и свойства, что и переменные любых других типов. Поэтому вполне допустимо создавать массивы объектов, в том числе динамические. Однако при создании динамических переменных необходимо очищать память. Для этого удобно использовать деструкторы. Деструктор выполняет освобождение использованных объектом ресурсов и удаление нестатических переменных объекта. По сути, деструктор - это функция, которая называется по имени класса (как и конструктор) и перед которой стоит тильда (~). Деструктор не имеет возвращаемого значения и не принимает параметров. Кроме того, при использовании объектов класса

чтобы использовать объекты класса как обычные переменные (складывать,

присваивать и т.п.) необходимо переопределять (перегружать) соответствующие операторы. Операторы могут быть унарными (например, индексация или присвоение) или бинарными (сложение, сравнение). Еще один из способов, которым достигается

реализация полиморфизма в языке С++, заключается в использовании перезагрузки функций. В C++ две или более функций могут иметь одно и то же имя в случае, если они отличаются набором параметров в интерфейсе.

Результат работы программы

1.Создадим консольный проект с именем LAB2.

2.Добавим файл Main.h из лабораторной работы №1 в Exam.h.Создадим файл Exam.cpp .Переместим конструктор и функции объекта Exam из LAB1.cpp в файл Exam.cpp.

3.Напишем функцию приведения типа. Для этого с помощью ключевого слова operator напишите функцию объекта Exam, которая преобразует тип Person в int.

Exam::operator int() {                             //Оператор преобразования

    return this->value;

}

int operator+(Exam& s1, Exam& s2) {                  //Перегрузка оператора сложения

    if (s1.value < 2 || s1.value > 5)                                                                                                                                //Проверка 1 значения

        s1.value = 0;

    if (s2.value < 2 || s2.value > 5)                                                                                                                                //Проверка 2 значения

        s2.value = 0

    return(s1.value + s2.value);

}

4.Определим объект Group, который будет содержать динамический массив объектов Exam.Создадим два файла group.h и group.cpp.

5.В заголовочном файле group.h определим с помощь ключевого слова class объект Group. Данные класса имеют закрытый уровень доступа. Опишем конструктор объекта с одним аргументом.

#pragma once

#include "Exam.h"

class Group

{

private:

    int array_size;

    Exam* array;

public:

    Group(int array_size);                           // Конструктор

    ~Group();                                               // Деструктор

    void Check(int a);                               //Проверка

    void Print() const;                              //Печать массива

...

Скачать:   txt (25 Kb)   pdf (187.9 Kb)   docx (47.2 Kb)  
Продолжить читать еще 22 страниц(ы) »
Доступно только на Essays.club