You are on page 1of 4

#include <iostream> #include <cstdlib> using namespace std; class matrix { private: int** element; void alloc(void); void

release(void); public: int rows; int cols; matrix(int, int); matrix(const matrix&); ~matrix(); void print(void); matrix operator+(const matrix&); matrix& operator=(const matrix&); initializare(int, int); };

matrix::matrix(int r, int c) { rows = r; cols = c; alloc(); for (int i = 0; i < rows; i++) for (int j = 0; j < cols; j++) element[i][j] = 0; } matrix::initializare(int r, int c) { int f; rows = r; cols = c;

alloc(); for (int i = 0; i < rows; i++) for (int j = 0; j < cols; j++) {cout<<"elementul "<<i+1<<" " <<j+1<<" :"; cin>>f; element[i][j] = f; } }

matrix::matrix(const matrix& m) { rows = m.rows; cols = m.cols; alloc(); for (int i = 0; i < rows; i++) for (int j = 0; j < cols; j++) element[i][j] = m.element[i][j]; } matrix::~matrix(void) { release(); } void matrix::alloc(void) { element = new int*[rows]; for (int i = 0; i < rows; i++) element[i] = new int[cols]; } void matrix::release(void) { for (int i = 0; i < rows; i++) delete [] element[i]; delete [] element; } void matrix::print(void) { for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) cout << element[i][j] << '\t';

cout << endl; } return; } matrix matrix::operator+(const matrix& m) { if (rows != m.rows || cols != m.cols) { cout << "Adunarea nu se poate efectua\n"; return (*this); } matrix temp(rows,cols); for (int i = 0; i < rows; i++) for (int j = 0; j < cols; j++) temp.element[i][j] = element[i][j] + m.element[i][j]; return temp; } matrix& matrix::operator=(const matrix& m) { for (int i = 0; i < m.rows; i++) for (int j = 0; j < m.cols; j++) element[i][j] = m.element[i][j]; return (*this); } int main(void) { int rows; int cols; cout<<"Cate linii au matricele?"; cin>>rows; cout<<"Cate coloane au matricele?"; cin>>cols;

matrix a(rows,cols),b(rows,cols),c(rows,cols);

a.initializare(rows,cols); b.initializare(rows,cols); a.print(); cout<<"\n"; b.print(); cout<<"\n"; c = a + b; c.print(); return 0; }

You might also like