// Matrice.h // Définition de la classe Matrice #include using namespace std; #ifndef MATRICE_H #define MATRICE_H template class Matrice { protected: int nbligne; int nbcol; Typ* data; public: Matrice(); Matrice(int _nbligne, int _nbcol); Matrice(const Matrice& _matrice); int getNbLigne()const; int getNbCol()const; void operator=(const Matrice& _matrice); void afficherMatrice()const; void setElement(int i,int j,Typ _elt); Typ getElement(int i,int j)const; void setTaille(int _nbligne,int _nbcol); void ajoutLigne(const Matrice& ligne); void supprimLigne(int num); ~Matrice(); }; templateMatrice::Matrice(){ nbligne=1; nbcol=1; data=new Typ[nbligne*nbcol]; } templateMatrice::Matrice(int _nbligne,int _nbcol){ nbligne=_nbligne; nbcol=_nbcol; data=new Typ[nbligne*nbcol]; } templateMatrice::Matrice(const Matrice& _matrice){ nbligne=_matrice.nbligne; nbcol=_matrice.nbcol; data=new Typ[nbligne*nbcol]; for (int i=0;iint Matrice::getNbLigne()const{ return nbligne; } templateint Matrice::getNbCol()const{ return nbcol; } templatevoid Matrice::operator=(const Matrice& _matrice){ delete[] data; nbligne=_matrice.nbligne; nbcol=_matrice.nbcol; data=new Typ[nbligne*nbcol]; for (int i=0;ivoid Matrice::afficherMatrice()const{ if (nbligne==0) cout<<"Matrice vide"<void Matrice::setElement(int i, int j,Typ _elt){ data[i*nbcol+j]=_elt; } // Méthode retournant l'élément (i,j) : template Typ Matrice::getElement(int i, int j)const{ return data[i*nbcol+j]; } // Méthode modifiant la taille de la matrice : templatevoid Matrice::setTaille(int _nbligne,int _nbcol){ delete[] data; nbligne=_nbligne; nbcol=_nbcol; data=new Typ[nbligne*nbcol]; } // Méthode ajoutant une ligne a la matrice : templatevoid Matrice::ajoutLigne(const Matrice& ligne){ Matrice temp(*this); delete[] data; nbligne++; data=new Typ[nbligne*nbcol]; for (int i=0;isetElement((nbligne-1),j,ligne.getElement(0,j)); } // Méthode supprimant la ligne num de la matrice : templatevoid Matrice::supprimLigne(int num){ Matrice temp(*this); delete[] data; nbligne--; int k=0; data=new Typ[nbligne*nbcol]; for (int i=0;isetElement(k,j,temp.getElement(i,j)); k++; } } } templateMatrice::~Matrice(){ delete[] data; } #endif