Nella classe Scacchiera ho la sovrascrittura dell'operatore di stampa:
codice:
ostream& operator << (ostream& os, const Scacchiera ScacchStamp){
char c = 'a';
for (int i = 0; i< 9; ++i){
for (int j=1; j<4; ++j){
os<< "\n";
for (int k=0; k<9; ++k){
for (int m=0; m<3; ++m){
if ((j==3) && m==1){
os << "______";
}
else if (m==2 && j!=4){
os << "|";
}
else if (j==2 && m==1){
if (i!=0 && k!=0){
os << " " << ScacchStamp._scacch[i-1][k-1] << " ";
}
else if (i==0 && k!=0){
os << " "<< c <<" ";
c++;
}
else if (k==0 && i!=0){
os << " "<< i <<" ";
}
}
else if((j==1 && m==1) || (i==0 && k==0 && j==2)){
os << " ";
}
}
}
}
}
return os;
}
Alla fine dell'esecuzione di una qualsiasi stampa dell'oggetto di tipo Scacchiera viene invocato il distruttore di Scacchiera...perche'?