Poznaj C++ w$ godziny0155

Poznaj C++ w$ godziny0155



144 Godzina 10

Usuwanie obiektów

Kiedy wywołasz delete na wskaźniku do obiektu klasy znajdującego się na stercie, to przed zwolnieniem pamięci zajmowanej przez obiekt zostanie wywołany destruktor klasy, której jest dany obiekt. Dzięki temu klasa ma np. możliwość zwolnienia dodatkowo zarezerwowanej pamięci tak, jak jest to robione podczas usuwania obiektów ze stosu w momencie wyjścia z funkcji. Listing 10.1 ilustruje tworzenie i usuwanie obiektów ze sterty.

Listing 10.1. Tworzenie i usuwanie obiektów ze sterty

1:

2:

3:

4:

6:

8:

9:

10

11

12

13

14

15

16

17

18

19

20 21

23

24

25

26 28

29

30

31

32

33

34

35

36


// Listing 10.1

// Tworzenie i usuwanie obiektów ze sterty

#include <iostream.h>5: class ZwyklyKot7: { public:

ZwyklyKot() ;

~ZwyklyKot() ; private:

int jegoWiek;

>;

ZwyklyKot: : ZwyklyKot ()

{

cout « "Wywołanie konstruktora.\n";

jegoWiek = 1;

}

ZwyklyKot::-ZwyklyKot()22:    {

cout « "Wywołanie destruktora.\n";

}

int main()27:    {

cout « "ZwyklyKot Frisky...\n";

ZwyklyKot Frisky;

cout « "ZwyklyKot *pRags = new ZwyklyKot...\n”; ZwyklyKot * pRags = new ZwyklyKot; cout « "delete pRags...\n"; delete pRags;

cout « "Wyjście, Frisky odchodzi...\n"; return 0;

>

EFĘKT DZIAŁANIA:

ZwyklyKot Frisky...

Wywołanie konstruktora.

ZwyklyKot * pRags = new ZwyklyKot... Wywołanie konstruktora, delete pRags...

Wywołanie destruktora.

Wyjście, Frisky odchodzi...

Wywołanie destruktora.

Usuwanie obiektów

Kiedy wywołasz delete na wskaźniku do obiektu klasy znajdującego się na stercie, to przed zwolnieniem pamięci zajmowanej przez obiekt zostanie wywołany destruktor klasy, której jest dany obiekt. Dzięki temu klasa ma np. możliwość zwolnienia dodatkowo zarezerwowanej pamięci tak, jak jest to robione podczas usuwania obiektów ze stosu w momencie wyjścia z funkcji. Listing 10.1 ilustruje tworzenie i usuwanie obiektów ze sterty.

Listing 10.1. Tworzenie 1 usuwanie obiektów ze sterty

1:    // Listing 10.1

2:    II Tworzenie i usuwanie obiektów ze sterty

3:

4:    #include <iostream.h>5:

6:    class ZwyklyKot7: (

8:    public:

9:    Zwykły Kot() 1

10:    -ZwyklyKotO;

11:    private:

12:    int jegoWiek;

13:    } ;

14:

15:    ZwyklyKot::ZwyklyKot()

16:    {

17:    cout « "Wywołanie    konstruktora.\n";

18:    jegoWiek = 1;

19:    )

20:

21:    ZwyklyKot::-ZwyklyKot()22:    {

23:    cout « "Wywołanie    destruktora.\n";

24:    }

25:

26:    int main()27:    {

28:    cout « "ZwyklyKot Frisky...\n”;

29:    ZwyklyKot Frisky;

30:    cout « "ZwyklyKot *pRags = new ZwyklyKot...\n”;

31:    ZwyklyKot * pRags = new ZwyklyKot;

32:    cout « "delete pRags...\n";

33:    delete pRags;

34:    cout « "Wyjście, Frisky odchodzi...\n";

35:    return 0;

36:    )

EFEKT DZIAŁANIA;

ZwyklyKot Frisky...

Wywołanie konstruktora.

ZwyklyKot * pRags = new ZwyklyKot... Wywołanie konstruktora, delete pRags...

Wywołanie destruktora.

Wyjście, Frisky odchodzi... Wywołanie destruktora.


Wyszukiwarka

Podobne podstrony:
Poznaj C++ w$ godziny0089 Funkcje 75 Kiedy wartość jest odkładana na stos, to jest umieszczana w kom
Poznaj C++ w$ godziny0029 Zaczynamy 13 Skompiluj program ponownie. Na ekranie powinieneś zobaczyć ko
Poznaj C++ w$ godziny0226 Tablice 217 Jednak taka reprezentacja mniej przystaje do rzeczywistości ni
Zasada zerowar    ^ Kiedy obiekt gorący znajduje się w kontakcie cieplnym z obiektem
4.1.3. Obiekt 2 - Łąka wilgotna Obiekt ten znajduje się w odległości kilkuset metrów SW od terenu
P3200181 290 gdzie: t) = lgdy dwa dowolne, lecz różne obiekty r i s (para) znajdują się w tej samej
15 5.6.2. Systemy pomiarowe z wykorzystaniem radiomodemów W przypadku gdy obiekt pomiaru znajduje si
WIELKOŚĆ OBIEKTÓW A OPERACJE WYOBRAŻENIOWE 315 i odległości obiektu. Przedmioty znajdujące się
84030 P3310048 290 4 Analiza sk upien gdzie }j - 1 gdy dwa dowolne, lecz różne obiekty r i s (p
5.    Ochrona przeciwpożarowa obiektu. Budynek znajduje się w zasięgu istniejących
Poznaj C++ w$ godziny0071 Godzina 5Funkcje Kiedy ktoś mówi o C++ to ma na myśli przede wszystkim obi
Poznaj C++ w$ godziny0086 72 Godzina 5 Kiedy wywołasz funkcję 10 razy, to program tyle samo razy „sk
Poznaj C++ w$ godziny0033 Program w C++ 17 Sednem naszego programu jest linia 5. Obiekt cout użyty z
Poznaj C++ w$ godziny0037 Program w C++ 21 16:    cout « "Wywołanie funkcji Add(
Poznaj C++ w$ godziny0047 Zmienne i stałe 31Kiedy używać short a kiedy long Jednym z problemów progr
Poznaj C++ w$ godziny0056 Instrukcje i wyrażenia 41 Dzielenie całkowite wygląda trochę inaczej niż z

więcej podobnych podstron