Ho realizzalizzato la seguente classe per effettuare alcune operazioni su un vettore di interi:
in seguito ho realizzato una classe matrice e voglio che sfrutti le caratteristiche della classe vettore in questo modo:codice:class vettore { int *v,size; public: vettore(int); //costruttore normale ~vettore();//distruttore vettore(const vettore &op2); //costruttore di copia vettore operator+(vettore op2); vettore operator=(vettore op2); vettore operator++(int notused); vettore operator*(int op2); void dispay(); };
E fin qui tutto ok (almeno credo)codice:class matrice { int righe,colonne; vettore *m; public: matrice(int,int); //costruttore normale ~matrice();//distruttore matrice(const matrice &op2); //costruttore di copia matrice operator+(matrice op2); matrice operator=(matrice op2); matrice operator++(int notused); matrice operator*(int op2); void dispay(); };![]()
Il problema è nel costruttore della classe matrice:
perchè?codice:matrice::matrice(int dimr,int dimc) { righe=dimr; m=new vettore [righe]; //ho un errore qui errore if(!m) { cout << "Errore"; exit(1); } }
se può essere utile il costruttore di vettore è:
codice:vettore::vettore(int dim=3) { size=dim; int i; v=new int[size]; if(!v) { cout << "Errore"; exit(1); } for(i=0;i<size;i++) v[i]=rand()%100; }


Rispondi quotando
