146 Godzina 10
23: delete Frisky;
24: return 0;
25: >
Frisky ma 5 lat Frisky ma 10 lat
ANALIZA
W linii 19, na stercie, tworzony jest obiekt klasy ZwyklyKot. Konstruktor domyślny ustala jego wiek na 5. W linii 20 wywoływana jest metoda PobierzWiek (). Ponieważ odwołanie następuje poprzez wskaźnik, to wykorzystujemy operator „wskazujący na” ( -> ). W linii 21 wywoływana jest metoda UstawWiek (). W linii 22 ponownie odczytujemy wartość zmiennej jegoWiek z wykorzystaniem metody PobierzWiek (), wskaźnika i operatora (->)•
Jedna (lub więcej) zmienna wewnętrzna może być wskaźnikiem na obiekt na stercie. Pamięć może być zarezerwowana w konstruktorze klasy (albo w jednej z jej metod) i może być zwolniona w destruktorze. Listing 10.3. demonstruje to rozwiązanie.
1: // Listing 10.3
2: // Wskaźniki jako zmienne wewnętrzne
3:
4: jfinclude <iostream.h>5:
8: public:
9: ZwyklyKot ();
10: -ZwyklyKot();
11: int PobierzWiek() const { return *jegoWiek; }
12: void UstawWiek(int wiek) { *jegoWiek = wiek; )
13:
14: int PobierzWage() const { return *jegoWaga; }15:
void UstawWage (int waga) { *jegoWaga = waga; }
16:
17: private:18: int * jegoWiek;
19: int * jegoWaga;
20: } ;
21:
22: ZwyklyKot::ZwyklyKot()23: {
24: jegoWiek = new int (5);
25: jegoWaga = new int(10);
27:
28: ZwyklyKot::-ZwyklyKot()29: {
30: delete jegoWiek;
31: delete jegoWaga;
23: delete Frisky;
24: return 0;
25: )
Frisky ma 5 lat Frisky ma 10 lat
ANALIZA
W linii 19, na stercie, tworzony jest obiekt klasy ZwyklyKot. Konstruktor domyślny ustala jego wiek na 5. W linii 20 wywoływana jest metoda PobierzWiek (). Ponieważ odwołanie następuje poprzez wskaźnik, to wykorzystujemy operator „wskazujący na” ( -> ). W linii 21 wywoływana jest metoda UstawWiek (). W linii 22 ponownie odczytujemy wartość zmiennej jegoWiek z wykorzystaniem metody PobierzWiek (), wskaźnika i operatora (•>)•
Jedna (lub więcej) zmienna wewnętrzna może być wskaźnikiem na obiekt na stercie. Pamięć może być zarezerwowana w konstruktorze klasy (albo w jednej z jej metod) i może być zwolniona w destruktorze. Listing 10.3. demonstruje to rozwiązanie.
1: // Listing 10.3
2: // Wskaźniki jako zmienne wewnętrzne
3:
4: #include <iostream.h>5:
6: class ZwyklyKot?: {
8: public:
9: ZwyklyKot ();
10: -ZwyklyKot();
11: int PobierzWiek() const { return *jegoWiek; }
12: void OstawWiek(int wiek) ( *jegoWiek = wiek; )
13:
14: int PobierzWage() const { return *jegoWaga; }15:
void OstawWage (int waga) { *jegoWaga = waga; )
16:
17: private:18: int * jegoWiek;
19: int * jegoWaga;
20: ) ;
21:
22: ZwyklyKot::ZwyklyKot()23: (
24: jegoWiek = new int (5);
25: jegoWaga = new int(10);
27:
28: ZwyklyKot::-ZwyklyKot()29: {
30: delete jegoWiek;
31: delete jegoWaga;