pelna-wersja-cbuilder-6-cwiczenia-zaawansowane_czcbu6.pdf

(5053 KB) Pobierz
656492740 UNPDF
IDZ DO
PRZYK£ADOW Y ROZDZIA£
C++Builder 6.
Æwiczenia zaawansowane
SPIS TRECI
KATALOG KSI¥¯EK
KATALOG ONLINE
Autor: Andrzej Daniluk
ISBN: 83-7361-089-8
Format: B5, stron: 138
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Jeli opanowa³e ju¿ podstawy C++ Buildera i zacz¹³e wykorzystywaæ to rodowisko
we w³asnych projektach, przyszed³ zapewne czas na dokonanie nastêpnego kroku:
poznanie zaawansowanych technik programistycznych.
Ksi¹¿ka „C++Builder 6. Æwiczenia zaawansowane” to ponad 30 kompletnych
przyk³adowych projektów. Jak wszystkie ksi¹¿ki z tej serii jest ona skierowana do
praktyków: nie znajdziesz wiêc w niej rozwa¿añ teoretycznych, za to w krótkim czasie,
krok po kroku, opanujesz C++ Buildera na profesjonalnym poziomie. Tak¿e u¿ytkownicy
innych rodowisk programistycznych wykorzystuj¹cych jêzyk C++ skorzystaj¹ na jej
lekturze.
Opisano miêdzy innymi:
• Wskazania, adresy i odwo³ania
• Prze³adowywanie operatorów
• Funkcje wirtualne, klasy pochodne, polimorficzne i abstrakcyjne
• Wykorzystanie w¹tków i procesów
• Operacje na plikach
• Modyfikowanie typów zmiennych w czasie wykonywania programu
• Generowanie liczb pseudolosowych
• Wykorzystanie koprocesora matematycznego
• Tworzenie nowych komponentów C++ Buildera i modyfikowanie istniej¹cych
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
656492740.005.png 656492740.006.png 656492740.007.png 656492740.008.png 656492740.001.png 656492740.002.png
Spis treci
Wstp...........................................................................................................................................................5
Rozdział 1. Wskazania i adresy................................................................................................................................7
Organizacja pamici w komputerze....................................................................................7
Operatory wskanikowe....................................................................................................9
Wskaniki i tablice...........................................................................................................9
Wskaniki ze słowem kluczowym const........................................................................... 13
Wielokrotne operacje po rednie....................................................................................... 14
Wskaniki do funkcji...................................................................................................... 15
Wskaniki i pami% alokowana dynamicznie .................................................................... 20
Stos......................................................................................................................... 21
Sterta....................................................................................................................... 22
Dereferencja wskanika.................................................................................................. 27
Operatory (.*) oraz (->*) ................................................................................................ 29
Podsumowanie............................................................................................................... 30
Rozdział 2. Odwołania................................................................................................................................................31
Czym s1 odwołania?....................................................................................................... 31
Parametry odwołaniowe.................................................................................................. 33
Zwracanie odwoła4 przez funkcje.................................................................................... 35
Odwołania do struktur .................................................................................................... 36
Podsumowanie............................................................................................................... 38
Rozdział 3. Przeładowywanie operatorów......................................................................................................39
Przeładowywanie jednoargumentowych operatorów ++ oraz –– ....................................... 40
Przeładowywanie operatorów (!) oraz (!=) ....................................................................... 43
Przeładowywanie operatora &......................................................................................... 46
Przeładowywanie operatora indeksowania tablic []............................................................ 47
Podsumowanie............................................................................................................... 50
Rozdział 4. Tablice jako urz%dzenia wej&cia-wyj&cia................................................................................51
Podsumowanie............................................................................................................... 54
Rozdział 5. Funkcje wirtualne. Klasy pochodne, polimorficzne i abstrakcyjne............................55
Odwołania i wskaniki do klas pochodnych...................................................................... 55
Funkcje wirtualne w C++................................................................................................ 58
Funkcje wirtualne w C++Builderze.................................................................................. 61
Klasy abstrakcyjne w stylu biblioteki VCL ....................................................................... 64
Podsumowanie............................................................................................................... 66
 
4
C++Builder 6. wiczenia zaawansowane
Rozdział 6. Typy danych Windows.......................................................................................................................67
Rozdział 7. W%tki.........................................................................................................................................................69
W1tki i procesy.............................................................................................................. 69
Funkcja _beginthread() ................................................................................................... 70
Funkcja _beginthreadNT() .............................................................................................. 72
Funkcja BeginThread()................................................................................................... 77
Zmienne lokalne w1tku................................................................................................... 80
Klasa TThread............................................................................................................... 81
Metody.................................................................................................................... 81
Wła ciwo ci............................................................................................................. 82
Podsumowanie............................................................................................................... 84
Rozdział 8. Operacje na plikach..........................................................................................................................85
Moduł SysUtils.............................................................................................................. 85
Windows API ................................................................................................................ 91
Klasa TMemoryStream................................................................................................... 98
Podsumowanie............................................................................................................. 101
Rozdział 9. Zmienne o typie modyfikowalnym w czasie wykonywania programu....................103
Struktura TVarData...................................................................................................... 103
Klasa TCustomVariantType.......................................................................................... 105
Moduł Variants ............................................................................................................ 107
Tablice wariantowe ...................................................................................................... 109
Podsumowanie............................................................................................................. 113
Rozdział 10. Liczby pseudolosowe.......................................................................................................................115
Losowanie z powtórzeniami.......................................................................................... 116
Losowanie bez powtórze4............................................................................................. 119
Podsumowanie............................................................................................................. 124
Rozdział 11. Funkcje FPU..........................................................................................................................................125
Podsumowanie............................................................................................................. 128
Rozdział 12. Komponentowy model C++Buildera.......................................................................................129
Tworzymy nowy komponent......................................................................................... 129
Modyfikacja istniej1cego komponentu z biblioteki VCL/CLX.......................................... 135
Podsumowanie............................................................................................................. 138
Rozdział 3.
Przeładowywanie
operatorów
Jzyk C++ udostpnia programistom niezwykle wydajne narzdzie w postaci moliwo-
ci przeładowywania (okrelania nowych działa ) wybranych operatorów.
Przeładowywanie (przedefiniowywanie) operatorów umoliwia rozszerzenie obszaru
zastosowa wybranego operatora na elementy niezdefiniowanej wczeniej unikalnej klasy.
Projektuj&c algorytm nowego działania wybranego operatora, naley skorzysta( ze spe-
cjalnej funkcji o zastrzeonej nazwie :
Zapis ten oznacza, i, na przykład, najprostsza funkcja opisuj&ca nowy algorytm odejmowa-
nia (nowy sposób działania unarnego operatora odejmowania ) bdzie mogła przybra(
nastpuj&c& posta(:
Reguły C++ umoliwiaj& przeładowywanie praktycznie wszystkich operatorów, za wy-
j&tkiem czterech, dla których nie jest moliwe zdefiniowanie nowych działa :
operatora kropki umoliwiaj&cego uzyskiwanie bezporedniego dostpu
do pół struktur i klas,
operatora wskazuj&cego wybrany element klasy,
operatora rozróniania zakresu,
operatora warunkowego.
656492740.003.png
 
40
C++Builder 6. wiczenia zaawansowane
Przeładowywanie jednoargumentowych
operatorów ++ oraz ––
Jako przykład praktycznego wykorzystania przeładowanego operatora postinkrementacji
posłuy nam sytuacja zliczania elementów ci&gu znaków wprowadzonych z klawiatury.
W celu przeładowania jednoargumentowego operatora w pierwszej kolejnoci musimy
zaprojektowa( odpowiedni& funkcj operatorow&. Kada funkcja operatorowa powinna
mie( moliwo( wykonywania odpowiednich operacji na właciwych egzemplarzach
klasy (lub obiektu), inaczej mówi&c, powinna w stosunku do odpowiedniej klasy posiada(
status funkcji zaprzyja/nionej lub by( normaln& metod& w klasie. Zaprojektujemy prost&
klas o nazwie (licznik):
!!!!"
##
Poniewa celem naszym bdzie zwikszanie w odpowiedni sposób (postinkrementowanie)
wartoci pola egzemplarza klasy , funkcja operatorowa przybierze
nieskomplikowan& posta(:
!!!!"
Zauwamy, i funkcja ta, bd&c normaln& metod& w klasie, nie posiada jawnych argu-
mentów i w momencie wywołania otrzymuje niejawny wska/nik do własnego eg-
zemplarza klasy. Dziki posiadaniu niejawnego wska/nika funkcja ma moliwo(
postinkrementowania wartoci pola własnego egzemplarza klasy.
Dziki instrukcji:
"
funkcja operatorowa jawnie zwraca wska/nik do zmodyfikowanego egzemplarza klasy
.
wiczenie 3.1.
Kada funkcja składowa klasy otrzymuje niejawnie argument w postaci wska/nika do
obiektu, który j& wywołał, i do którego uzyskuje si dostp, wykorzystuj&c słowo kluczowe
(wska/nik) . Funkcje składowe przeładowywanych operatorów jednoargumentowych
nie potrzebuj& adnych jawnie zadeklarowanych parametrów formalnych. Jedynym argu-
mentem, którego naley uy(, jest wska/nik , bd&cy w rzeczywistoci wska/nikiem
do egzemplarza klasy, a nie jego kopi&. Konsekwencj& tego jest fakt, i wszystkie modyfi-
kacje wykonane za jego porednictwem przez funkcj operatora modyfikuj& zawarto(
wywoływanego egzemplarza klasy. Przykład wykorzystania funkcji prze-
ładowanego operatora w celu zliczania znaków wprowadzanych z klawiatury zamiesz-
czono na listingu 3.1. Koniec ci&gu wprowadzanych znaków oznaczamy klawiszem Esc .
656492740.004.png
Zgłoś jeśli naruszono regulamin