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'?