Ciao a tutti.
Ho ricominciato da capo a scrivere la mia classe per rappresentare delle matrici. Ho deciso di utilizzare i templates e i puntatori (sono a conoscenza di std::vector, std::array, std::valarray, ... ma preferisco aprofondire l'argomento puntatori).
Queste sono le prime semplici righe che ho scritto. Il codice compila ma... é corretto? :)
Una domanda. Ho messo come tipo di default double prima della definizione della classe; devo farlo anche prima di ogni funzione, distruttore o costruttore?codice:#ifndef MATRIX_H #define MATRIX_H #include <iostream> template <typename T = double> class Matrix { public: Matrix(size_t, size_t); virtual ~Matrix(); void set(const T&); private: T** data; size_t row; size_t col; }; #endif template <typename T> Matrix<T>::Matrix(size_t r, size_t c) : row(r), col(c), data(new T*[row]) { for(int i(0); i < row; i++) { data[i] = new T[col]; } } template <typename T> void Matrix<T>::set(const T& d) { for(int i(0); i < row; i++) { for(int j(0); j < col; j++) { data[i][j] = d; } } } template <typename T> Matrix<T>::~Matrix() { for(int i(0); i < row; i++) { delete data[i]; } delete data; }
Grazie,
R.

Rispondi quotando