Ragazzi non ho idea di cosa stia succedendo...
In pratica io ho una funzione che lavora su una matrice quadrata. Se la riga o la colonna sono più grandi della dimensione della matrice deve sollevare un'eccezione. Così:
Quando la chiamo dal main, così:codice:square_matrix square_matrix::suppress(unsigned int row, unsigned int column) const throw (out_of_bounds_exception) { cout << "Debug couts:" << endl; cout << "In square_matrix::suppress(unsigned, unsigned)." << endl; cout << "_dim = " << _dim << endl; cout << "row = " << row << endl; cout << "column = " << column << endl; if ( (row >= _dim) || (column >= _dim) ) throw out_of_bounds_exception(); ... }
Ottengo questo output meraviglioso:codice:try { square_matrix B = A.suppress(0,0); B.print(); } catch(out_of_bounds_exception& ex) { cerr << "out_of_bounds_exception raised." << endl; }
Cioè, ora, io ero convinto che (0 < 3)... no? I numeri in gioco sono tutti unsigned.codice:Debug couts: In square_matrix::suppress(unsigned, unsigned). _dim = 3 row = 0 column = 0 out_of_bounds_exception raised.
Qualcuno ha idea di cosa stia succedendo?![]()

Rispondi quotando
.
