English readme here.
В данном проекте я реализую библиотеку s21_matrix_oop.h
для работы с матрицами по подобию matrix_library_c, но на этот раз используя объектно-ориентированный подход (см. материалы). Объектно-ориентированный подход позволяет реализовать библиотеку для работы с матрицами в виде отдельного класса, над объектами которого определены операции, представленные как методами, так и стандартными операторами +, -, * и т.д.
s21_matrix_oop.a
- собрать чистую библиотеку.
test
- запустить тесты функций.
leaks
- проверить тестируемый код на утечки.
gcov_report
- посмотреть покрытие тестами кода.
Ниже представлено краткое описание операций над матрицами, которые реализованы библиотеке.
Метод | Описание |
---|---|
S21Matrix() |
Базовый конструктор, инициализирующий матрицу некоторой заранее заданной размерностью. |
S21Matrix(int rows, int cols) |
Параметризированный конструктор с количеством строк и столбцов. |
S21Matrix(const S21Matrix& other) |
Конструктор копирования. |
S21Matrix(S21Matrix&& other) |
Конструктор переноса. |
~S21Matrix() |
Деструктор. |
Операция | Описание | Исключительные ситуации |
---|---|---|
bool EqMatrix(const S21Matrix& other) |
Проверяет матрицы на равенство между собой. | |
void SumMatrix(const S21Matrix& other) |
Прибавляет вторую матрицы к текущей | различная размерность матриц. |
void SubMatrix(const S21Matrix& other) |
Вычитает из текущей матрицы другую | различная размерность матриц. |
void MulNumber(const double num) |
Умножает текущую матрицу на число. | |
void MulMatrix(const S21Matrix& other) |
Умножает текущую матрицу на вторую. | число столбцов первой матрицы не равно числу строк второй матрицы. |
S21Matrix Transpose() |
Создает новую транспонированную матрицу из текущей и возвращает ее. | |
S21Matrix CalcComplements() |
Вычисляет матрицу алгебраических дополнений текущей матрицы и возвращает ее. | Матрица не является квадратной. |
double Determinant() |
Вычисляет и возвращает определитель текущей матрицы. | Матрица не является квадратной. |
S21Matrix InverseMatrix() |
Вычисляет и возвращает обратную матрицу. | Определитель матрицы равен 0. |
Оператор | Описание | Исключительные ситуации |
---|---|---|
+ |
Сложение двух матриц. | Различная размерность матриц. |
- |
Вычитание одной матрицы из другой. | Различная размерность матриц. |
* |
Умножение матриц и умножение матрицы на число. | Число столбцов первой матрицы не равно числу строк второй матрицы. |
== |
Проверка на равенство матриц (EqMatrix ). |
|
= |
Присвоение матрице значений другой матрицы. | |
+= |
Присвоение сложения (SumMatrix ). |
Различная размерность матриц. |
-= |
Присвоение разности (SubMatrix ). |
Различная размерность матриц. |
*= |
Присвоение умножения (MulMatrix /MulNumber ). |
Число столбцов первой матрицы не равно числу строк второй матрицы. |
(int i, int j) |
Индексация по элементам матрицы (строка, колонка). | Индекс за пределами матрицы. |