16.05.2015 Views

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

LEKCJA 34. O ZASTOSOWANIU DZIEDZICZENIA.<br />

________________________________________________________________<br />

Z tej lekcji dowiesz się, do czego w praktyce programowania<br />

szczególnie przydaje się dziedziczenie.<br />

________________________________________________________________<br />

Dzięki dziedziczeniu programista może w pełni wykorzystać gotowe<br />

biblioteki klas, tworząc własne klasy i obiekty, jako klasy<br />

pochodne wazględem "fabrycznych" klas bazowych. Jeśli bazowy<br />

zestw danych i funkcji nie jest adekwatny do potrzeb, można np.<br />

przesłonić, rozbudować, bądź przebudować bazową metodę dzięki<br />

elastyczności <strong>C++</strong>. Zdecydowana większość standardowych klas<br />

bazowych wyposażana jest w konstruktory. Tworząc klasę pochodną<br />

powinniśmy pamiętać o istnieniu konstruktorów i rozumieć sposoby<br />

przekazywania argumentów obowiązujące konstruktory w przypadku<br />

bardziej złożonej struktury klas bazowych-pochodnych.<br />

PRZEKAZANIE PARAMETRÓW DO WIELU KONSTRUKTORÓW.<br />

Klasy bazowe mogą być wyposażone w kilka wersji konstruktora.<br />

Dopóki nie przekażemy konstruktorowi klasy bazowej żadnych<br />

argumentów - zostanie wywołany (domyślny) pusty konstruktor i<br />

klasa bazowa będzie utworzona z parametrami domyślnymi. Nie<br />

zawsze jest to dla nas najwygodniejsza sytuacja.<br />

Jeżeli wszystkie, bądź choćby niektóre z parametrów, które<br />

przekazujemy konstruktorowi obiektu klasy pochodnej powinny<br />

zostać przekazane także konstruktorowi (konstruktorom) klas<br />

bazowych, powinniśmy wytłumaczyć to <strong>C++</strong>. Z tego też powodu,<br />

jeśli konstruktor jakiejś klasy ma jeden, bądź więcej<br />

parametrów, to wszystkie klasy pochodne względem tej klasy<br />

bazowej muszą posiadać konstruktory. Dla przykładu dodajmy<br />

konstruktor do naszej klasy pochodnej Cpochodna:<br />

class CBazowa1<br />

{<br />

public:<br />

CBazowa1(...);<br />

};<br />

class CBazowa2<br />

{<br />

public:<br />

CBazowa2(...);<br />

};<br />

//Konstruktor<br />

//Konstruktor<br />

class Cpochodna : public CBazowa1, CBazowa2<br />

{<br />

public:<br />

Cpochodna(...); //Konstruktor<br />

};<br />

//Lista klas<br />

- 336-

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!