Ciao a tutti, non capisco perché nel costruttore a parametri si va a verificare se _p != NULL, qualcuno mi può illuminare?
Allego testo dell'esercizio :
Allo scopo di rappresentare le matrici diagonali n × n in un software per il calcolo scientifico, si realizzi in linguaggio
C++ il template di classe MatDiag, parametrizzato sul tipo T e avente per attributi la dimensione _n della matrice (un
numero intero) e un puntatore _p a un array di _n valori di tipo T, che rappresentano gli elementi sulla diagonale della
matrice (gli altri elementi non si rappresentano, avendo valore pari a 0). Si implementino, inoltre, i seguenti metodi:
o Il costruttore con parametri che riceva come parametri la dimensione n della matrice (un numero intero) ed un
array D di n elementi di tipo T, allochi dinamicamente l’array puntato da _p e vi copi gli elementi di D.
template <typename T>
MatDiag<T>::MatDiag(int n, T D[]) {
if (n > 0) {
_p = new T[n];
if (_p != NULL) {
for (int k = 0; k < n; k++)
_p[k] = D[k];
_n = n; }
else _n = 0;
else { _n = 0; _p = NULL; } }