#ifndef _INTMATRIS_IS_THE_BEST_ #define _INTMATRIS_IS_THE_BEST_ #include "intVektor.h" #include //Skapar en matris av heltal class intMatris { public: //Skapar en matris med noll rader och noll kolumer //Pre: True //Post: En ny matris har skapats explicit intMatris(); //Skapar en matris med rows rader och cols kolumer //Pre: rows > 0, cols > 0 //Post: En ny matris har skapats explicit intMatris(int rows, int cols); //Kopieringskonstruktör - skapar en ny intMatris med data från en annan intMatris (kopia) //Pre: True //Post: En kopia av rh har skapats intMatris(const intMatris& rh); //Destruktör - raderar en intMatris och alla dess data //Pre: True //Post: Alla data för intMatris har raderas och intMatris har upphört att existera virtual ~intMatris(); //Tilldelning - tilldelar intMatris data och storelk från en annan intMatris //Pre: True //Post: Alla data och storleken för rh har satts till denna intMatris virtual intMatris& operator=(const intMatris& rh); //Hämtar kolumnen på position x //Pre: x > 0 < getRows() //Post: Värdet på position har returnerats virtual intVektor& operator[](const int x) const; //Adderar varje position i två matriser och returnerar resultatet //Pre: True //Post: Returnerat en matris där varje position är adderad mellan de två matriserna virtual const intMatris operator+(intMatris& rh); //Returnerar antalet rader i matrisen //Pre: True //Post: Returnerat antalet rader i hela matrisen virtual int getRows(); private: //Sätter storleken på matrisen samt tömmer den //Pre: True //Post: Storeken på matrisen är satt och tom (alla celler är 0) void setMatrix(const int newRows, const int newCols); //Matrisens lagringsplats //Matrisen är mRows x mCols i storlek där // mRows => 0 // mCols => 0 intVektor* matrix; //Antalet celler i horisontellt led (y-led) //mRows => 0 int mRows; //Antalet celler i vertikalt led (x-led) //mCols => 0 int mCols; }; //Other operators //Används för att skriva ut data från vektorn //Pre: True //Post: Skrivit ut en tabell över alla tal i matrisen std::ostream& operator<<(std::ostream& os, intMatris rh); //Läser in alla positioner till matrisen // Varje tal på en rad anges separerade med , och RETUR matar in nästa rad //Pre: True //Post: Alla inmatade värden har lagrats. Om det var färre värden än platser i matrisen kommer de resterande // platserna att behålla sina gamla värden. Om fler värden än platser har matats in kommer överskridande // värden att hoppas över. std::istream& operator>>(std::istream& is, intMatris& rh); #endif