lab 1.3 Header.h

← разместить еще код

Расшаренный код:

#pragma once
#include <iostream>
using namespace std;
class Matrix{
private:
	int ** _matrix;
	size_t _rows; // кiлькiсть рядкiв
	size_t _columns; // кiлькiсть стовбцiв

public:
	// блок конструкторiв та деструктора
	Matrix(size_t rows, size_t columns);
	Matrix(const Matrix &matrix);
	~Matrix();
	// блок геттерiв
	size_t GetRows();
	size_t GetColumns();
	// необхiднi функцii для створення матрицi
	void   AllocMemory();
	void   CopyElementsInRow(const Matrix &matrix, unsigned int i);
	void   CopyMatrix(const Matrix &matrix);
	void   FillAllocatedMemory();
	// випадкове заповнення матрицi
	void   FillRandom();
	// заповнення певного елемента матрицi
	void   Set(size_t row, size_t columns, int value);
	void   GetSumRows(const Matrix &firstMatrix, const Matrix &secondMatrix, size_t i);
	void   GetDifRows(const Matrix &firstMatrix, const Matrix &secondMatrix, size_t i);
	// отримання значення певного елемента
	int    Get(size_t row, size_t columns) const;
	// знаходження модулiв елементiв та iх замiна
	void Abs();
	// блок перевантаження операторiв
	int& operator ()(const int i, const int j);
	friend istream& operator>> (istream &in, Matrix& m);
	friend ostream& operator<< (ostream &out, Matrix& m);
	Matrix& operator= (const Matrix& b);
	friend Matrix  operator-(const Matrix &firstMatrix, const Matrix &secondMatrix);
	friend Matrix  operator+(const Matrix &firstMatrix, const Matrix &secondMatrix);
	friend Matrix  operator*(const Matrix &firstMatrix, const Matrix &secondMatrix);
};
Matrix operator-(const Matrix &firstMatrix, const Matrix &secondMatrix);
Matrix operator+(const Matrix &firstMatrix, const Matrix &secondMatrix);
Matrix operator*(const Matrix &firstMatrix, const Matrix &secondMatrix);
int abs(int argument);
// прототип класу помилок
class MyException :public exception {
private:
	int row1, row2, col1, col2; // кiлькiсть рядкiв/стовбцiв матриць
public:
	// конструктори об'эктiв
	MyException(const char *msg):exception(msg) {}
	MyException(const char *msg, int row1, int col1, int row2, int col2):exception(msg) {
		this->row1 = row1;
		this->row2 = row2;
		this->col1 = col1;
		this->col2 = col2;
	}
	// виведення значень об'эктiв що зпричинили помилку
	void GetDataState() {
		cout << "\nThe number of rows of the first matrix: " << row1;
		cout << "\nThe number of columns of the first matrix: " << col1;
		cout << "\nThe number of rows of the second matrix: " << row2;
		cout << "\nThe number of columns of the second matrix: " << col2;
	}
};