101 TIF

101 TIF



cout « ((poch *) b)->weźRozm() « endl; return 0;

}

Rzutowanie klasy pochodnej na klasę podstawową jest dopuszczalne. Wszystkie funkcje klasy podstawowej są obecne w klasie pochodnej. Sytuacja odwrotna nie może mieć miejsca i nie można rzutować klasy podstawowej na klasę pochodną. Klasy pochodne często mają składowe i zmienne niewystępujące w klasie podstawowej. Można przez przypadek wskazać lub zapisać zmienne, które nie istnieją, powodując błąd.

W podanym kodzie źródłowym druga instrukcja cout wypisze na ekranie jakieś śmieci. Funkcja składowa weźRozm i używana przez nią zmienna składowa, nie są częścią klasy macierzystej. Kompilator pobierze kod z miejsca, w którym przechowuje się klasę pochodną, ale zmienna nRozm2 nie istnieje w klasie podstawowej. Jeśli różnice między klasą pochodną a klasą podstawową są wystarczająco duże, to zamiast śmieci na ekranie można wywołać naruszenie dostępu.

Używanie zmiennych składowych po usunięciu wskaźnika this

unikanie awarii; unikanie nieoczekiwanych wyników

Przed

int Zwolnij()

{

int cOdw;

if(!(—m_cOdw)) delete this; return m_cOdw;

}

Po

int ZwolnijO

{

int cOdw;

- - m_cOdw; cOdw = m_cOdw; if(!cOdw) delete this; return cOdw;

}


Wyszukiwarka

Podobne podstrony:
cout << "Zarobki: " << zarobki << endl; Po zdefiniowaniu klasy w program
niewrbalne nowe0011 tif wyniki w tzw. kwestionariuszu homofobii (zawierającym takie pozycje jak na
098 TIF int main(int argc, char* argv[]){ KlasaNaucz t1; KlasaPrac s1; cout « tl.nldNaucz « endl; co
042 TIF { cout « "Pętla" « endl; nNowePróbki = 0; Po int nNowePróbki; int nRozmBuf; nNoweP
75793 Zdjęcie0056 (11) void Prostokąt () { Hit u y, for (i = 1; i <= 20; i++) ^ cout«"*"
229 TIF return;} // Przydziela dodatkowy znak na kończący znak pusty. cchNew = m_cch + cch; pch
std::cout « jakiesKolo.pole() « endl; // wynik: 28.274... // wskaźniki
ALG33 Poznaj C++ w pięć minut! 333 cout <<"metody pisz:x= « x << endl; ); class
Slajd29 (101) Współczynnik załamania <jn k - — v Po rozwiązaniu tych równań ze względu na n i k o
s 188 7 Ruc* c*Mfc Całkowite prr> spieszenie punktu B jest równe sumie rzutów jego składkowych na
P1000944 (3)

więcej podobnych podstron