Приветствую, лор!
Лабораторная работа. Необходимо написать класс для матрицы на основе двумерного массива. Код компилируется успешно, но в процесе работы, при обращении к массиву сегфолтится. Если скопипастить куски кода из класса в функцию main, то вроде работает как надо. Чувствую, что какая-нибудь глупая/тривиальная ошибка, но самому разобраться или нагуглить не вышло. Заранее спасибо.
Собственной код:
//matrix.h
#include <iostream>
using std::cout;
using std::cin;
class Matrix
{
public:
Matrix();
Matrix(int, int);
void display();
void enter();
private:
int row_;
int col_;
int **matrix_;
};
//matrix.cpp
#include "matrix.h"
Matrix::Matrix(int row, int col){
int **matrix_ = new int* [row];
for (int r = 0; r < row; r++)
matrix_[r] = new int [col];
for(int n = 0; n < row; n++){
for(int m = 0; m < col; m++)
matrix_[n][m] = 1;
}
row_ = row;
col_ = col;
}
void Matrix::display(){
for(int n = 0; n < row_; n++)
for(int m = 0; m < col_; m++)
cout << matrix_[n][m];
cout << '\n';
}
void Matrix::enter(){
for(int n = 0; n < row_; n++)
for(int m = 0; m < col_; m++){
std::cout << "Inter element " << "[" << n << "][" << m << "] ";
std::cin >> matrix_[n][m];
}
}
//main.cpp
#include "matrix.h"
int main(void){
Matrix mt(3, 4);
mt.display();
mt.enter();
return 0;
}