[ Pobierz całość w formacie PDF ]
IDZ DO
PRZYK£ADOW
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
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.
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
.
[ Pobierz całość w formacie PDF ]