Si consideri il seguente codice:specifica eccezione quando l'override una funzione virtuale
class A
{
public:
virtual void f() throw (int) { }
};
class B: public A
{
public:
void f() throw (int, double) { }
};
Quando compilato, si dice che classe derivata B ha un perdente tiro identificatore rispetto ad A. Qual è l'importanza di questo? Se proviamo a scambiare le loro specifiche di eccezione, così che A :: f() genera int e double mentre B :: f() lancia solo int, l'errore non appare.
Spero sinceramente che non vengano mai lanciate istanze di classi che non devono essere utilizzate come eccezioni e questo è solo per una rapida e sporca illustrazione della tua domanda :) –
Matthieu: Ah, sì certo. Capisco. – jasonline