Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Conversione tra template
Forum - C/C++ - Conversione tra template

Avatar
dieguz46 (Normal User)
Newbie


Messaggi: 4
Iscritto: 27/01/2013

Segnala al moderatore
Postato alle 16:14
Domenica, 03/02/2013
Data questa classe:

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. using namespace std;
  3.  
  4. template <class T>
  5. class matrix{
  6.         private:
  7.         T **array;
  8.         unsigned int rows;
  9.         unsigned int cols;
  10.         public:
  11.         matrix(unsigned int r, unsigned int c);
  12.         matrix(matrix & m);
  13.         T* & operator[](unsigned int r) { return array[r]; }
  14.         unsigned int getRows() const { return rows; }
  15.         unsigned int getCols() const { return cols; }
  16.         T getValue(unsigned int r, unsigned int c) { return array[r][c]; }
  17.         void setValue(unsigned int r, unsigned int c, T value) { array[r][c] = value; }
  18.         void showArray();
  19. };
  20.  
  21. template <class T>
  22. matrix<T>::matrix(unsigned int r, unsigned int c) {
  23.   rows = r;
  24.   cols = c;
  25.   array = new T*[r];
  26.   for(int i=0; i<r; i++)
  27.     array[i] = new T[c];
  28. }
  29.  
  30. template <class T>
  31. matrix<T>::matrix(matrix & m) {
  32.   int i, j;
  33.   delete [] array;
  34.   rows = m.getRows();
  35.   cols = m.getCols();
  36.   array = new T*[rows];
  37.   for(i=0; i<rows; i++)
  38.     array[i] = new T[cols];
  39.   for(i=0; i<rows; i++)
  40.     for(j=0; j<cols; j++)
  41.       array[i][j] = m[i][j];
  42. }
  43.  
  44. template <class T>
  45. void matrix<T>::showArray() {
  46.   int i, j;
  47.   for(i=0; i<rows; i++) {
  48.     for(j=0; j<cols; j++)
  49.       cout << array[i][j] << "|";
  50.         cout << endl;
  51.   }
  52. }



avrei la necessità di costruire una matrice di elementi di tipo T data un'altra matrice di elementi di tipo Q.
La gestione della convertibilità tra le due tipologie devo lasciarla al compilatore ed utilizzare eventualmente le eccezioni.
Potete  aiutarmi? :-|

Ultima modifica effettuata da dieguz46 il 03/02/2013 alle 16:17
PM Quote