148: } 149: cout << “Gotowe.n”; 150:
148: }
149: cout << “Gotowe.n”;
150: return 0;
151: }
Wynik
Zbyt mala! Otrzymano: 9
Gotowe.
Analiza
Listing 20.5 deklaruje w klasie xSize wirtualną metodę o nazwie PrintError(). Ta metoda wypisuje komunikat błędu oraz aktualny rozmiar klasy. Jest przesłonięta w każdej z klas pochodnych.
W linii 141. obiekt wyjątku jest deklarowany jako referencja. Gdy zostaje wywołana funkcja PrintError() dla referencji do obiektu, polimorfizm powoduje, że zostaje wywołana metoda właściwej klasy. Dzięki temu kod jest bardziej przejrzysty, łatwiejszy do zrozumienia i dużo łatwiejszy w konserwacji.