#include "intMatris.h" #include //Public intMatris::intMatris() { mRows = 0; mCols = 0; matrix = new intVektor[0]; setMatrix(0,0); } intMatris::intMatris(int rows, int cols) { mRows = 0; mCols = 0; matrix = new intVektor[0]; setMatrix(rows,cols); } intMatris::intMatris(const intMatris& rh) { if(this != &rh) { mRows = 0; mCols = 0; matrix = new intVektor[0]; //Satt storlek setMatrix(rh.mCols,rh.mRows); //Kopiera varden for(int i = 0; i < rh.mCols; i++) matrix[i] = rh.matrix[i]; } } intMatris::~intMatris() { delete[] matrix; } intMatris& intMatris::operator=(const intMatris& rh) { if(this != &rh) { //Satt storlek setMatrix(rh.mCols,rh.mRows); //Kopiera varden for(int i = 0; i < mCols; i++) matrix[i] = rh.matrix[i]; } return *this; } intVektor& intMatris::operator[](const int x) const { return matrix[x]; } const intMatris intMatris::operator+(intMatris& rh) { intMatris temp(rh.mRows, rh.mCols); for(int i = 0; i < mRows; i++) temp[i] = matrix[i] + rh.matrix[i]; return temp; } int intMatris::getRows() { return mRows; } //Private void intMatris::setMatrix(const int newRows, const int newCols) { delete[] matrix; matrix = new intVektor[newCols]; for(int i = 0; i < newRows; i++) { const intVektor temp(newRows); matrix[i] = temp; } mRows = newRows; mCols = newCols; } //Other operators std::ostream& operator<<(std::ostream& os, intMatris rh) { os << "("; for(int j = 0; j < rh.getRows(); j++) { for(int i = 0; i < rh.getRows(); i++) os << "[" << rh[j][i] << "]"; if(j != rh.getRows() - 1) os << std::endl; } os << ")" << std::endl; return os; } std::istream& operator>>(std::istream& is, intMatris& rh) { for(int j = 0; j < rh.getRows(); j++) { is >> rh[j]; } return is; }