Ho realizzalizzato la seguente classe per effettuare alcune operazioni su un vettore di interi:
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();
};
in seguito ho realizzato una classe matrice e voglio che sfrutti le caratteristiche della classe vettore in questo modo:
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();
};
E fin qui tutto ok (almeno credo)
Il problema è nel costruttore della classe matrice:
codice:
matrice::matrice(int dimr,int dimc)
{
righe=dimr;
m=new vettore [righe]; //ho un errore qui errore
if(!m)
{
cout << "Errore";
exit(1);
}
}
perchè?
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;
}