Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "matrix.h"
- #include <iostream>
- using namespace std;
- Matrix::Matrix()
- {
- m_row = 3;
- m_column = 3;
- }
- Matrix::Matrix(int row, int column,double**data)
- {
- m_row = row;
- m_column = column;
- m_data = data;
- }
- Matrix::~Matrix()
- {
- for (int i = 0; i < m_row; i++)
- {
- delete[] m_data[i];
- }
- delete[] m_data;
- }
- Matrix::Matrix(const Matrix &matrix)
- {
- m_row = matrix.m_row;
- m_column = matrix.m_column;
- m_data = new double*[m_row];
- for (int i = 0; i < m_row; i++)
- {
- m_data[i] = new double[m_column];
- }
- for (int i = 0; i < m_row; i++)
- for (int j = 0; j < m_column; j++)
- m_data[i][j] = matrix.m_data[i][j];
- }
- void Matrix::operator=(const Matrix& matrix)
- {
- m_row = matrix.m_row;
- m_column = matrix.m_column;
- m_data = new double*[m_row];
- for (int i = 0; i < m_row; i++)
- {
- m_data[i] = new double[m_column];
- }
- for (int i = 0; i < m_row; i++)
- for (int j = 0; j < m_column; j++)
- m_data[i][j] = matrix.m_data[i][j];
- }
- Matrix Matrix::operator*(const Matrix& matrix)
- {
- //Matrix result(m_row,matrix.m_column);
- double** data_tmp = new double*[m_row];
- for (int i = 0; i < m_row; i++)
- {
- data_tmp[i] = new double[matrix.m_column];
- }
- for (int i = 0; i < m_row; ++i)
- for (int j = 0; j < matrix.m_column; ++j)
- for (int k = 0; k < m_column; ++k)
- {
- data_tmp[i][j] += m_data[i][k] * matrix.m_data[k][j];
- }
- Matrix result(m_row, matrix.m_column,data_tmp);
- return result;
- }
- void Matrix::show()
- {
- for (int i = 0; i < m_row; i++)
- {
- for (int j = 0; j < m_column; j++)
- {
- cout << m_data[i][j] << " ";
- }
- cout << endl;
- }
- }
Add Comment
Please, Sign In to add comment