Ho un problema in fase di costruzione o distruzione di un oggetto. Il codice viene compilato senza problemi ma quando lanciato "va in errore" provocando la chiusura inaspettata dell'applicazione. Il costruttore dovrebbe creare una matrice dinamica ma per essere più chiari questo è il codice:
codice:
#include <iostream>
using namespace std;
enum colore{bianco=0, grigio, nero};
class Canvas{
int m, n;
colore** col;
friend ostream& operator<<(ostream&, const Canvas&);
public:
Canvas(int, int);
~Canvas();
//...
};
ostream& operator<<(ostream& os, const Canvas& ca){
for(int i=0; i<ca.n; i++)
{
for(int j=0; j<ca.m; j++)
{
if(ca.col[i][j]==0)
os << ". ";
if(ca.col[i][j]==1)
os << "G ";
if(ca.col[i][j]==2)
os << "N ";
}
os << endl;
}
return os;
}
Canvas::Canvas(int i, int j){
m=i;
n=j;
col=new colore*[m];
for(int i=0; i<m; i++)
col[i]=new colore[n];
for(int i=0; i<n; i++)
{
for(int j=0; j<m; j++)
col[i][j]=bianco;
}
cout << "Costruttore\n";
}
Canvas::~Canvas(){
for(int i=0; i<m; i++)
delete[] col[m];
delete[] col;
cout << "Distruttore\n";
}
int main(){
Canvas c(4,6);
return 0;
}
Grazie in anticipo per l'aiuto.