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;
}