Skip to content

Ruling456/OOP-CPP-Laboratory_2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Лабораторная работа №2

Тема: "Изучение базовых приемов работы с классами"

Цель:

  • Закрепление навыков работы с классами

  • Закрепление навыков работы с динамической памятью на «куче»

  • Закрепление навыков работы с массивами

Порядок выполнения работы:

  • Ознакомиться с теоретическим материалом

  • Реализовать задание в соответствии с вариантом (Вариант 4)

  • Написать Unit-тесты с использованием Google Test

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

Требования к программе:

Используя в качестве образца класс Array (см. ниже), реализовать динамические контейнеры с использованием динамического массива.

  • Каждый класс должен быть разделен на интерфейс и реализацию.

  • Самостоятельно определить необходимые типы, поля и дополнительные методы.

  • Реализовать генерацию исключений в конструкторах и методах при необходимости (использовать стандартные исключения).

  • Реализовать арифметические операции: сложение, вычитание, копирование

  • Реализовать операции сравнения: (больше, меньше, равно).

  • Арифметические операции с присваиванием должны быть реализованы как методы класса.

  • Перегрузку операторов применять не нужно

  • Объекты классов должны быть иммутабельными (то есть не меняться после создания), результат методов должен возвращаться как новый экземпляр объекта

class Array 
{          
public: 
    Array(); 
    Array(const size_t & n, unsigned char t = 0); 
    Array(const std::initializer_list< unsigned char> &t); 
    Array(const string &t); 
    Array(const Array& other); 
    Array(Array&& other) noexcept;               
    virtual ~Array() noexcept; 
}; 

Условие задачи:

Создать класс Four для работы с беззнаковыми целыми четверичными числами, используя для представления числа массив из элементов типа

unsigned char, каждый элемент которого является четверичной цифрой. Младшая цифра имеет меньший индекс (единицы — в нулевом элементе массива).


Структура проекта

tasks/Laboratory_2/
├── CMakeLists.txt
├── main.cpp
├── README.md
├── include/
│   └── Four.h
├── src/
│   └── Four.cpp
└── test/
    └── test_four.cpp

Сборка и запуск проекта

Сборка:

docker build -t laboratory2 .

# Запуск тестов
docker run --rm laboratory2

Без докера

# Создание директории для сборки
mkdir build
cd build

# Конфигурация проекта
cmake ..

# Сборка проекта
cmake --build .

Запуск:

./Laboratory_2.exe


# Или при запуске в VS code (в моём случае)
cd Debug
Laboratory_2_exe.exe

Запуск тестов:

# Из директории build
./Laboratory_2_test

# Или при запуске в VS code (в моём случае)
cd Debug
Laboratory_2_tests.exe

# Или через CTest
ctest --verbose

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors