090

090




i usuwamy w granicach funkcji), to będziemy musieli utworzyć konstruktor kopiowania i przeciążyć operator przypisania. Dlaczego? Domyślny konstruktor i operator przypisania nie kopiują pamięci, którą przydzielamy. Kopiują one zaledwie wskaźniki j do pamięci.    j

We fragmencie „Przed” klasa ma zmienną składową o nazwie m_pch, zawierającą i wskaźnik do bufora znaków. Domyślny operator przypisania kopiuje wskaźnik. Nie kopiuje jednak samego bufora pamięci. W ten sposób uzyskujemy dwa wskaźniki od- S noszące się do tego samego obszaru pamięci. Gdy jedna z klas zostaje usunięta, wów- czas zwalnia się pamięć. Druga klasa staje się wówczas bezużyteczna, ponieważ B wskazuje pamięć, która przed chwilą została zwolniona. Musimy zatem utworzyć S-również kopię wskazywanej pamięci. Przeciążenie operatora przypisania umożliwi ■ utworzenie funkcji składowej, która przydzieli nowy bufor pamięci i skopiuje do niego ■ zawartość bufora źródłowego.    w

Informacje na ten temat można znaleźć również we wskazówce 94. Jest tam opisana analogiczna metoda dotycząca konstruktora kopiowania.

Przykład: klasa String w pliku String.cpp    :


Ochrona przed wywołaniem się operatorów na sobie samych


pisanie szybkiego kodu; unikanie nieoczekiwanych wyników


Przed


const Napis& operator=(const Napis &napis)


{

ReinicjNapis(napis.m_pch, napis.m_cch); return *this;


}


Po


const Napis& operator= (const Napis &napis)


{

if(&napis != this)


ReinicjNapis(napis.m_pch, napis.m_cch);


return *this;


}


Należy pamiętać o tym, że operator może działać na sobie samym. Na przykład można napisać instrukcję:


x=x;



Wyszukiwarka

Podobne podstrony:
360 V. Funkcje wielu zmiennych gdzie u.x + a.2 + ...+a.„=k jeśli zaś u jest funkcją x, y, ..., z, to
IMG 00 JĘZYK I MKTODA KM. U, K. t dając taką umiejętność nic będziemy musieli, jak to czynili niektó
020 7 Kolejne twierdzenie dotyczy granicy funkcji, w której wzorze występuje pierwiastek. Y ~Ó Jeśli
CCF20091117011 GRANICE FUNKCJI - INTUICJE61 tym rozdziale będziemy analizować wykresy różnych funkc
CCF20091117019 71 GRANICE FUNKCJI - DEFINICJE Niech funkcja f będzie określona w przedziale (axo),
CCF20091117022 74 GRANICE FUNKCJI. POCHODNE Gdy funkcja jest ciągła w pewnym przedziale, to jej wyk
do tej samej granicy właściwej, to mówimy, że funkcja f jest całkowalna na (a. b) a granicę ciągu su
granice funkcji Granice funkcji Jeżeli lim f(x) = a i lim g(x) = b, to: X—>XQ X—>XQ Granica il
2/35 Analiza matematyczna I / Granice funkcji . pomyślał „co to kurwa jest?". Zapewne, odstawił

więcej podobnych podstron