У меня есть этот конструктор для матрицы для выделения памятиутечка памяти перегрузки оператора =
class Matrix
{
public:
int** matrix;
int cols;
int rows;
};
Matrix::Matrix(int row, int col)
{
cols = col;
rows = row;
matrix = new int*[rows];
int i;
for (i = 0; i < rows; ++i)
{
matrix[i] = new int[cols];
}
}
теперь я хочу, чтобы перегрузить оператор =, но я не могу понять, как написать функцию и выделить новый память, не получая утечки памяти, или не имея достаточной памяти.
Матрица, на которой я сделаю = на ней, уже выделена память, поэтому я могу удалить память и создать новую память по размеру другой?
сейчас у меня есть это на оператора =
this->rows = other.rows;
this->cols = other.cols;
int i, j;
for (i = 0; i < this->rows; ++i)
{
for (j = 0; j < this->cols; j++)
{
this->matrix[i][j] = other.matrix[i][j];
}
}
return *this;
У вас есть конструктор копирования? –
Да, я сделал конструктор копирования – Mumfordwiz