Dziedziczenie

Adam Boduch

Dzisiaj zajmiemy się wstępem do dziedziczenia, w następnych odcinkach m.in. funkcje wirtualne wszystko o operacjach wejścia/wyjścia. Na koniec zajmiemy się szczegółowo algorytmami w C++.

A więc... let`s start!

Dziedziczenie pozwala na zdefiniowanie nowej klasy (zakładam, że wiecie czym jest klasa) przy wykorzystaniu już istniejącej.

Oto przykładowa klasa:

   class punkty
   {
    public:
      float a,b;
      punkty(float,float);
      void wypisz();
      void przesuń(float,float);
   }; 

Załóżmy, że w naszym programie nagle wynikła potrzeba użycia dodatkowej klasy, która różni się od tej jedynie w kilku szczegółach. Zapewne wielu pomyśli, że w takim przypadku trzeba stworzyć definicję nowej klasy. Otóż nie! Ponieważ właśnie technika zwana dziedziczeniem służy do tworzenia klas pochodnych (stąd nazwa "dziedziczenie"-jedna klasa dziedziczy pewne cechy od drugiej).

Jak działa dziedziczenie?

Przykładowo chcemy, by nowa klasa miała dodatkowy składnik (daną)

   char nazwa[20];  

a także zmieniona funkcję wypisz.

Nowa klasa powinna zostać zdefiniowana w następujący sposób:

   class punkciki: public punkty
   {
    public:
    char nazwa[20];
    punkciki(float=0,float=0,char* =NULL);
    void wypisz();
   }; 

W ten sposób powstała nowa klasa o nazwie punkciki (klasa pochodna) wywodząca się od klasy punkty (klasa podstawowa).

Bardzo ważna w naszej klasie pochodnej jest pierwsza linijka:

class punkciki: public punkty

Wyrażenie znajdujące się po dwukropku nazywa się listą pochodzenia. Informuje ona od czego wywodzi się klasa pochodna.

W klasie pochodnej możemy zdefiniować:

*dodatkowe dane składowe (w naszym przykładzie:char nazwa[20];),
*dodatkowe funkcje składowe (w naszym przykładzie zmieniliśmy funkcję wypisz).
*składnik (np: funkcję) istniejący już w danej klasie podstawowej.

W ten sposób możemy poprawić kształt czegoś, co nie odpowiada nam w klasie podstawowej a czego nie chcemy dziedziczyć w danej klasie w istniejącym kształcie.

Już trochę wiem, czyli czas na eksperymenty.

Jest to jedynie wstęp do zagadnienia dziedziczenia. Ale już zachęcam do eksperymentowania. Jeżeli po waszych zmianach program się wysypie, nie przejmujcie się tym; spróbujcie jeszcze raz, wszak najlepiej uczymy się na własnych błędach.

Serdecznie pozdrawiam i zapraszam na kolejne odcinki.

Rafał Skopowski [email protected]

0 komentarzy