Poznaj C++ w$ godziny0245

Poznaj C++ w$ godziny0245



Dziedziczenie 237

43:    void ProsOJedzenie() { cout « "Prośba o jedzenie...\n"; )

44:

45:    private:

46:    RASA jegoRasa;

47:    } ;

48:

49:    int main()

50:    {

51:    Pies fido;

52:    fido.Mow();

53:    fido.MachajOgonem();

54:    cout « "Fido ma " « fido.PobierzWiek() « " lata\n";

55:    return 0;

56:    }

EFEKT DZIAŁANIA:

Odgłos ssaka! Machanie ogonem. .. Fido ma 2 lata

W liniach 6-27 deklarujemy klasę Ssak (w celu skrócenia programu wszystkie funkcje są zadeklarowane i zdefiniowane jako inline). W liniach 29-47 deklarujemy klasę Pies jako pochodną klasy Ssak. Dzięki takiej deklaracji, każdy pies, oprócz własnej rasy, ma również określoną wagę i wiek.

W linii 51 deklarujemy obiekt klasy Pies o nazwie (imieniu) Fido. Fido, oprócz atrybutów klasy Pies, dziedziczy również wszystkie atrybuty klasy Ssak. Dlatego Fido posiada metodę MachajOgonem (), Mow () i Spij ().

Konstruktory i destruktory

Obiekty klasy Pies są również obiektami klasy Ssak. Jest to główna cecha relacji Jest...”. Kiedy tworzymy obiekt Fido najpierw jest wywoływany jego konstruktor bazowy, którego zadaniem jest stworzenie obiektu klasy Ssak. Następnie jest wywoływany konstruktor klasy Pies, tworzący gotowy obiekt. Ponieważ, przy deklaracji Fido, nie podaliśmy żadnych parametrów, to wywoływany jest domyślny konstruktor klasy Pies. Obiekt Fido jest w pełni stworzony dopiero wtedy, gdy zostaną wykonane oba konstruktory: jeden z klasy Ssak i drugi z klasy Pies.

Podczas usuwania obiektu Fido z pamięci zachodzi proces odwrotny. Najpierw jest wywoływany destruktor klasy Pies, a następnie destruktor klasy Ssak. Każdy destruktor kasuje tę część obiektu Fido, która należy do jego klasy. Pamiętaj, aby posprzątać po Piesku!. Demonstruje to listing 16.3.


W liniach 6-27 deklarujemy klasę Ssak (w celu skrócenia programu wszystkie funkcje są zadeklarowane i zdefiniowane jako inline). W liniach 29-47 deklarujemy klasę Pies jako pochodną klasy Ssak.


43

44

45

46


void ProsOJodzenie() { cout « "Prośba o jedzenie.,.\n";


private:


47:    } ;


RASA jegoRasa;


48

49


50:    {


int main()


Pie3 fido;

fido.MowO ;

fido.MachajOgonem();

cout « "Fido ma " « fido.PobierzWiek() « " lata\n"; return 0;


51

52

53

54

55

56:    )

Odgłos ssaka! Machanie ogonem... Fido ma 2 lata


Dzięki takiej deklaracji, każdy pies, oprócz własnej rasy, ma również określoną wagę i wiek.

W linii 51 deklarujemy obiekt klasy Pies o nazwie (imieniu) Fido. Fido, oprócz atrybutów klasy Pies, dziedziczy również wszystkie atrybuty klasy Ssak. Dlatego Fido posiada metodę MachajOgonem(), Mow () i Spij ().

Konstruktory i destruktory

Obiekty klasy Pies są również obiektami klasy Ssak. Jest to główna cecha relacji Jest...". Kiedy tworzymy obiekt Fido najpierw jest wywoływany jego konstruktor bazowy, którego zadaniem jest stworzenie obiektu klasy Ssak. Następnie jest wywoływany konstruktor klasy Pies, tworzący gotowy obiekt. Ponieważ, przy deklaracji Fido, nie podaliśmy żadnych parametrów, to wywoływany jest domyślny konstruktor klasy Pies. Obiekt Fido jest w pełni stworzony dopiero wtedy, gdy zostaną wykonane oba konstruktory: jeden z klasy Ssak i drugi z klasy Pies.

Podczas usuwania obiektu Fido z pamięci zachodzi proces odwrotny. Najpierw jest wywoływany destruktor klasy Pies, a następnie destruktor klasy Ssak. Każdy destruktor kasuje tę część obiektu Fido, która należy do jego klasy. Pamiętaj, aby posprzątać po Piesku!. Demonstruje to listing 16.3.


Wyszukiwarka

Podobne podstrony:
Poznaj C++ w$ godziny0168 Referencje 157 Referencje 157 23; cout « ” 24: cout « " 25: re
Poznaj C++ w$ godziny0196 Zaawansowane funkcje 187 53:    } 54:    cou
Poznaj C++ w$ godziny0238 Dziedziczenie i polimorfizmGodzina 16    Dziedziczenie 17 &
Poznaj C++ w$ godziny0241 Dziedziczenie 233 Dziedziczenie 233 Rysunek 16.1 Hierarchia zwierzątKróles
Poznaj C++ w$ godziny0243 Dziedziczenie 235 Ten program nie wypisuje nic na ekranie, gdyż jest jedyn
Poznaj C++ w$ godziny0247 Dziedziczenie 239 60: 61:    Pies::Pies () : 62:
Poznaj C++ w$ godziny0251 Dziedziczenie 243 Zauważ, że w linii 74, domyślny konstruktor klasy Pies w
Poznaj C++ w$ godziny0253 Dziedziczenie 245 Dziedziczenie 245 destruktor Psa. . destruktor Ssaka des
Poznaj C++ w$ godziny0255 Dziedziczenie 247 Tak wygląda bezpośrednie wywołanie metody klasy Ssak. Li
Poznaj C++ w$ godziny0033 Program w C++ 17 Sednem naszego programu jest linia 5. Obiekt cout użyty z
Poznaj C++ w$ godziny0036 20 Godzina 2Korzystanie z funkcji Funkcja może zwracać albo jakąś wartość
Poznaj C++ w$ godziny0037 Program w C++ 21 16:    cout « "Wywołanie funkcji Add(
Poznaj C++ w$ godziny0063 48 Godzina 4 12:    cout « "


Poznaj C++ w$ godziny0074 60 Godzina 5 ^szerokoscPodworka); 19: 20:    cout « "
Poznaj C++ w$ godziny0076 62Godzina 5 A oto kilka poprawnych definicji: long Pole(long d, long s){ r
Poznaj C++ w$ godziny0082 68Godzina 5 14:    cout « "Podaj liczbę od 0 do 10,000
Poznaj C++ w$ godziny0099 Proste klasy85 unsigned int Waga; void Miaucz(); Kot.Frisky; Frisky.Wiek =
Poznaj C++ w$ godziny0114 Więcej o klasach 101 32 33 34:    < 35 36 37 38 39 40 41
Poznaj C++ w$ godziny0135 Zaawansowane sterowanie programem 153 20:    break; 21: &nb

więcej podobnych podstron