150

150



{


}

private:

~LicznikOdwołań()

{

}

}

Gdy tworzymy obiekty, dla których są zliczane odwołania, wówczas musimy się upewnić, że to zliczanie jest poprawnie uaktualniane. Znaczy to, że trzeba zwiększać licznik przed użyciem obiektu i zmniejszać go po użyciu obiektu.

Obiekt sam kontroluje to, jak długo istnieje — dlatego nie można go usunąć. Usuwaniem obiektu powinna się raczej zająć metoda zmniejszająca licznik użyć (taka jak metoda Zwolnij w klasie LicznikOdwołań). Gdy licznik użyć spada do zera, wówczas metoda usuwa obiekt.

Dlatego też trzeba uniemożliwić utworzenie obiektu na stosie. Inaczej mówiąc, trzeba uniemożliwić programistom napisanie kodu w sposób:

LicznikOdwołań coś;

Dlaczego? Ponieważ ta instrukcja utworzy obiekt na stosie. Gdy funkcja zakończy działanie, wówczas obiekt zostanie automatycznie usunięty, bez dbania o jakiekolwiek zliczanie odwołań. (Ponadto obiekty utworzone na stosie znikną wraz z zakończeniem funkcji, więc nie będą mogły być użyte poza zasięgiem funkcji, jak wspomniano we wskazówce 53.)

Utworzenie prywatnego destruktora, tak jak we fragmencie „Po”, rozwiązuje ten problem. Jeśli kompilator nie znajdzie publicznego destruktora, to nie pozwoli utworzyć obiektu na stosie.

Przykład: klasa RefCounted w pliku access.cpp

Przekazywanie wstępnie przydzielonej pamięci do operatora new

pisanie szybkiego kodu

Kod źródłowy

class DemoNew

{

private: int m i;

void *operator new(t_rozm cbPrzydziel)


Wyszukiwarka

Podobne podstrony:
27 (608) obciążeń (dla których są stosowne współczynniki kształtu dachu podane w Załączniku B) należ
Towaroznawstwo Wykład I Podstawowe pojęcia statystyczne Populacja jest to zbiór obiektów dla których
IMAGE5 Punkt materialny Idealizacja rzeczywistych obiektów stosowana gdy rozmiary obiektów są nieis
62 Z GDANrEC Na Rysunku 7 przedstawione są schematycznie przykłady par zasad, dla których do tej por
Rozdział 14.Nieczytelne wykresy i schematy Jednym z najważniejszych powodów, dla których warto tworz
21016 P1090448 143 I spawania i zgrzewanie możliwe jest tylko dla tworzyw termoplastycznych, i £ Któ
nie miało. Mechanizm ten jest szczególnie silnie rozwinięty u dzieci, dla których te zabawki są najb
Mimo tych zagrożeń , są ważne powody dla których należy badać dyskusje ekonomistów na temat pieniądz

więcej podobnych podstron