ALG35

ALG35



Poznaj C-t-t w pięć minut! 335

W C++ kilka różnych pod względem zawartości funkcji może nosić taką samą nazwę” - „ta właściwa” funkcja jest rozróżniana poprzez typy swoich parametrów wejściowych. Przykładowo, jeśli w pliku z programem są zdefiniowane dwie procedury: void p(chur* s) i void p(int k), to wówczas wywołanie pl 12). niechybnie będzie dotyczyć tej drugiej wersji.

Mechanizm „przeciążania” może być zastosowany bardzo skutecznie w powiązaniu z mechanizmami dziedziczenia. Załóżmy, żc nie podoba nam się funkcja pisz, dostępna w klasie C3 dzięki temu, że w procesie dziedziczenia „przeszła” ona z klasy Cl do ('3. /. drugiej zaś strony, podoba nam się nazwa pisz w tym sensie, że chcielibyśmy jej używać na obiektach klasy C, ale do innego celu. Uzupełniamy wówczas klasę C3 o następującą definicję1'1:

void C3::pisz() f

cout << "nowa wersja metoay pisz'\n";

)

U wynik użycia ob.Cl::pisz O : w main:

!i ** stara wersja metody 'pisz' : jc-ll **

II wynik użycia ob.piszti; w main:

li ** nowa wersja metody 'pi3z': z-20 **

Teraz instrukcja ob.piszf) wywoła nową metodę pisz (z klasy C3), gdybyśmy zaś koniecznie chcieli użyć starej wersji, to należy jawnie tego zażądać poprzez <>h.('l::pisz().

Nasz przykład zakłada kilka celowych niedomówień. Wynika to z tego, że problematyka dziedziczenia własności w C++ zawiera wiele niuansów, które mogłyby być nużące dla nieprzygotowanego odbiorcy. Tym niemniej, zaprezentowana powyżej wiedza jest już wystarczająca do tworzenia dość skomplikowanych aplikacji zorientowanych obiektowo. Inne mechanizmy, takie jak np. bardzo ważne funkcje wirtualne i tzw . klasy abstrakcyjne, trzeba już pozostawić wyspecjalizowanym publikacjom — zachęcam Czytelnika do lektury.

Taka cecha jest zwana przeciążaniem.

14 Ponadto należy dodać linię wtidpis~(): do sekcji publicznej klasy C3.


Wyszukiwarka

Podobne podstrony:
ALG19 Poznaj C-h- w pięć minut! 319 a:=a+l; Iinkrementacja) b;-b-2 end. b=l; a++; //inkrementacja b-
ALG21 Poznaj C++ w pięć minut! 321Typy złożone W języku C++ występuje komplet typów prostych i złożo
ALG23 Poznaj C++ w pięć minut! 323 j :=1; for i:—l to 5 do begin writeln(i*j); j:=j+l and; i: =1; wh
ALG25 Poznaj C-m- w pięć minut! 325 •    w C++ instrukcja return(v) powoduje natychmi
ALG27 Poznaj C-m- w pięć minut! 327 Poznaj C-m- w pięć minut! 327 "KLASA Rys. A-L Terminologia&
ALG29 329 Poznaj C++ w pięć minut! operację dodawaniaS (mnożenia, dzielenia ctc.) oraz wypisywać ją
ALG31 Poznaj C-h- w pięć minut! 331 Podobnie jak w przypadku operatora +, celowe mogłoby być przedef
ALG33 Poznaj C++ w pięć minut! 333 cout <<"metody pisz:x= « x << endl; ); class
skanuj0136 (16) Epoka piśmienna doba nowopolska 268 ncgo, że oparły na tak różnych pod względem wart
DSC02635 2 m.ż potrafi unieść głowę na kilka sekund pod kqtem 45 st. * może reagować nasłuchiwaniem
-    utożsamiał walkę pierwotnie różnych pod względem etnograficznym grap z walką ras
rozdział 2 tom 1? ■długość obiektu. W wyjątkowych przypadkach, gdy obiekt składa się z konstrukcji r
DSC02635 2 m.ż potrafi unieść głowę na kilka sekund pod kqtem 45 st. * może reagować nasłuchiwaniem
IMG05 Pod względem budowy i funkcji Fas należy do cząsteczek z rodziny receptorów dla TNF. W grupie
gaj05 Przekaz medialny w ostatnich latach radykalnie zmienił się pód względem tego, co może być w ni
HPIM1846 to przekrycia budynku, która pod względom konstrukcyjnymi i funkcjonalnym pełnią rolę strop
Wymień i scharakteryzuj podstawowe typy węgla pod względem zawartości części lotnych i zastosowania

więcej podobnych podstron