język c++. pierwsze starcie full, ebooki
[ Pobierz całość w formacie PDF ]
Jķzyk C++.
Pierwsze starcie
Autor: Zbigniew Koza
ISBN: 978-83-246-1481-3
Format: B5, stron: 288
Poznaj tajniki programowania w C++
¤
Jak skonstruowany jest program w jķzyku C++?
¤
Na czym polega programowanie obiektowe?
¤
Jak korzystaě z bibliotek?
C++ to jeden z najpopularniejszych jķzykw programowania. Stosowany jest zarwno
przez profesjonalistw, jak i hobbystw. Wszyscy jego uŃytkownicy doceniajĴ
elastycznoľě, ogromne moŃliwoľci i szybkoľě dziaĀania napisanych w nim programw.
OgromnĴ zaletĴ C++ jest to, Ńe nie wymusza na programistach stosowania okreľlonego
stylu programowania. Z racji swoich moŃliwoľci jest to jķzyk bardzo zĀoŃony,
a efektywne programowanie w nim wymaga poznania wielu technik i pojķě
oraz umiejķtnoľci wykorzystania tej wiedzy w praktyce.
KsiĴŃka
â
C++. Pierwsze starcie
Ò
to podrķcznik, dziķki ktremu opanujesz zasady
programowania w tym jķzyku i zdobķdziesz solidne podstawy do dalszego rozwijania
swoich umiejķtnoľci. Znajdziesz w niej opis aktualnego standardu C++ oraz omwienia
narzķdzi programistycznych i bibliotek. Poznasz elementy jķzyka, zasady
programowania obiektowego i tworzenia zĀoŃonych aplikacji. Przeczytasz o szablonach,
bibliotece STL i obsĀudze bĀķdw. Dowiesz siķ, jak stosowaě biblioteki przy tworzeniu
aplikacji dla systemw Windows i Linux.
¤
Struktura programu w C++
¤
Elementy jķzyka
¤
Korzystanie z funkcji
¤
Programowanie obiektowe
¤
Dynamiczne struktury danych
¤
Stosowanie bibliotek
¤
Szablony
¤
Biblioteka STL
¤
ObsĀuga bĀķdw
Zrb pierwszy krok na drodze do profesjonalnego tworzenia oprogramowania
Wydawnictwo Helion
ul. Koľciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Spis tre•ci
Wst•p
9
1. Pierwszy program w C++
13
1.1.
Dla kogo jest ta ksi !ka?
. . . . . . . . . . . . . . . . . . . . . . . . .
13
1.2.
Rys historyczny
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
1.3.
Zanim napiszesz swój pierwszy program
. . . . . . . . . . . . . . . .
16
1.4.
Pierwszy program
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
1.5.
Obiekt std::cout i literały
. . . . . . . . . . . . . . . . . . . . . . .
21
1.6.
Deniowanie obiektów
. . . . . . . . . . . . . . . . . . . . . . . . . .
22
1.7.
Identykatory, słowa kluczowe i dyrektywy
. . . . . . . . . . . . . . .
24
1.8.
Zapis programu
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
1.9.
Cztery działania matematyczne i typ double . . . . . . . . . . . . .
25
1.10. Jeszcze wi#cej matematyki
. . . . . . . . . . . . . . . . . . . . . . . .
26
1.11. Upraszczanie zapisu obiektów i funkcji biblioteki standardowej
. . .
28
1.12. $ródła informacji
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
1.13. Q&A
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
1.14. Pytania przegl dowe
. . . . . . . . . . . . . . . . . . . . . . . . . . .
30
1.15. Problemy
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
2. Wyra enia i instrukcje
31
2.1.
Instrukcje steruj ce
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
2.2.
P#tle
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
2.3.
Typy wbudowane
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
2.4.
Wyra!enia arytmetyczne, promocje i konwersje standardowe
. . . .
41
2.5.
Tworzenie obiektów stałych
. . . . . . . . . . . . . . . . . . . . . . .
43
2.6.
Popularne typy standardowe
. . . . . . . . . . . . . . . . . . . . . . .
44
2.7.
Obiekty lokalne i globalne. Zasi#g. Przesłanianie
. . . . . . . . . . .
50
2.8.
Operatory
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
2.9.
Wyra!enia i instrukcje
. . . . . . . . . . . . . . . . . . . . . . . . . .
57
2.10. Q&A
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
2.11. Pytania przegl dowe
. . . . . . . . . . . . . . . . . . . . . . . . . . .
58
2.12. Problemy
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
3. Funkcje
61
3.1.
Referencje
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
3.2.
Funkcje swobodne
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
6
Spistre•ci
3.3.
Po co s funkcje?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
3.4.
Funkcje składowe – wprowadzenie
. . . . . . . . . . . . . . . . . . .
66
3.5.
Argumenty funkcji
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
66
3.6.
Funkcje zwracaj ce referencj#
. . . . . . . . . . . . . . . . . . . . . .
69
3.7.
Operatory jako funkcje swobodne
. . . . . . . . . . . . . . . . . . . .
70
3.8.
Stos funkcji
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
3.9.
Funkcje otwarte (inline)
. . . . . . . . . . . . . . . . . . . . . . . .
75
3.10. Funkcje jako argumenty innych funkcji
. . . . . . . . . . . . . . . . .
77
3.11. Rekurencja
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
3.12. Argumenty domy•lne
. . . . . . . . . . . . . . . . . . . . . . . . . . .
78
3.13. Lokalne obiekty statyczne
. . . . . . . . . . . . . . . . . . . . . . . .
79
3.14. Funkcja main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
3.15. Polimorzm nazw funkcji
. . . . . . . . . . . . . . . . . . . . . . . . .
82
3.16. Deklaracja a denicja funkcji
. . . . . . . . . . . . . . . . . . . . . . .
82
3.17. Q&A
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
3.18. Pytania przegl dowe
. . . . . . . . . . . . . . . . . . . . . . . . . . .
83
3.19. Problemy
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
4. Tablice i wska!niki
85
4.1.
Wska%niki
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
85
4.2.
Tablice
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
4.3.
Pami#' wolna (sterta)
. . . . . . . . . . . . . . . . . . . . . . . . . . .
96
4.4.
Q&A
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
98
4.5.
Pytania przegl dowe
. . . . . . . . . . . . . . . . . . . . . . . . . . .
98
4.6.
Problemy
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
5. Klasy i obiekty
101
5.1.
Struktury
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
101
5.2.
Co to s klasy?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
104
5.3.
Deniowanie klas
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
104
5.4.
Funkcje składowe (metody)
. . . . . . . . . . . . . . . . . . . . . . . .
109
5.5.
Udost#pnianie składowych
. . . . . . . . . . . . . . . . . . . . . . . .
115
5.6.
Interfejs i implementacja
. . . . . . . . . . . . . . . . . . . . . . . . .
117
5.7.
Kontrakty, niezmienniki i asercje
. . . . . . . . . . . . . . . . . . . . .
120
5.8.
Hermetyzacja danych
. . . . . . . . . . . . . . . . . . . . . . . . . . .
122
5.9.
Ró!nice mi#dzy klasami i strukturami
. . . . . . . . . . . . . . . . . .
122
5.10. Dygresja: składowe statyczne
. . . . . . . . . . . . . . . . . . . . . .
123
5.11. Pytania przegl dowe
. . . . . . . . . . . . . . . . . . . . . . . . . . .
124
5.12. Problemy
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
125
6. Dynamiczne struktury danych
127
6.1.
Stos na bazie tablicy dynamicznej
. . . . . . . . . . . . . . . . . . . .
127
6.2.
Stos na bazie listy pojedynczo wi zanej
. . . . . . . . . . . . . . . .
134
6.3.
Dygresja: przestrzenie nazw i zagnie!d!anie denicji klas
. . . . . .
137
6.4.
Q&A
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
139
6.5.
Pytania przegl dowe
. . . . . . . . . . . . . . . . . . . . . . . . . . .
139
6.6.
Problemy
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
140
Spistre•ci
7
7. Dziedziczenie i polimorzm
141
7.1.
Dziedziczenie
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
141
7.2.
Polimorzm
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
151
7.3.
Jak to si# robi w Qt?
. . . . . . . . . . . . . . . . . . . . . . . . . . .
157
7.4.
Q&A
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
161
7.5.
Pytania przegl dowe
. . . . . . . . . . . . . . . . . . . . . . . . . . .
161
7.6.
Problemy
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
162
8. Strumienie
163
8.1.
Strumienie buforowane i niebuforowane
. . . . . . . . . . . . . . . .
163
8.2.
Klawiatura, konsola, plik, strumie* napisowy
. . . . . . . . . . . . . .
164
8.3.
Stan strumienia
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
166
8.4.
Manipulatory i formatowanie strumienia
. . . . . . . . . . . . . . . .
167
8.5.
Strumienie wyj•cia
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
169
8.6.
Strumienie wej•cia
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
169
8.7.
Przykład
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
171
8.8.
Pytania przegl dowe
. . . . . . . . . . . . . . . . . . . . . . . . . . .
173
8.9.
Problemy
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
174
9. Biblioteki
175
9.1.
Podział programu na pliki
. . . . . . . . . . . . . . . . . . . . . . . .
175
9.2.
U!ywanie gotowych bibliotek
. . . . . . . . . . . . . . . . . . . . . . .
184
9.3.
Kompilacja i instalacja programów lub bibliotek
z plików %ródłowych
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
188
9.4.
Pytania przegl dowe
. . . . . . . . . . . . . . . . . . . . . . . . . . .
190
9.5.
Problemy
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
190
10. Preprocesor i szablony
191
10.1. Preprocesor
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
191
10.2. Szablony
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
197
10.3. Pytania przegl dowe
. . . . . . . . . . . . . . . . . . . . . . . . . . .
205
10.4. Problemy
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
206
11. Wprowadzenie do STL
207
11.1. Co to jest STL?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
207
11.2. Pojemniki
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
208
11.3. Iteratory
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
208
11.4. Algorytmy
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
211
11.5. Wektory (std::vector)
. . . . . . . . . . . . . . . . . . . . . . . . .
218
11.6. Liczby zespolone
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
222
11.7. Napisy (std::string)
. . . . . . . . . . . . . . . . . . . . . . . . . .
223
11.8. Q&A
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
224
11.9. Pytania przegl dowe
. . . . . . . . . . . . . . . . . . . . . . . . . . .
225
11.10. Problemy
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
225
12. Pojemniki i algorytmy
227
12.1. Przegl d pojemników STL
. . . . . . . . . . . . . . . . . . . . . . . .
227
8
Spistre•ci
12.2. Przegl d algorytmów swobodnych
. . . . . . . . . . . . . . . . . . . .
239
12.3. Kontrola poprawno•ci u!ycia STL
. . . . . . . . . . . . . . . . . . . .
246
12.4. Składniki dodatkowe
. . . . . . . . . . . . . . . . . . . . . . . . . . .
248
12.5. Q&A
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
248
12.6. Pytania przegl dowe
. . . . . . . . . . . . . . . . . . . . . . . . . . .
248
12.7. Problemy
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
249
13. Obsługa bł•dów
251
13.1. Rodzaje bł#dów
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
251
13.2. Analiza bł#dów składniowych: koncepty
. . . . . . . . . . . . . . . .
252
13.3. Wykrywanie bł#dów logicznych: debuger
. . . . . . . . . . . . . . . .
254
13.4. Obsługa bł#dów czasu wykonania: wyj tki
. . . . . . . . . . . . . .
257
13.5. Q&A
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
267
13.6. Pytania przegl dowe
. . . . . . . . . . . . . . . . . . . . . . . . . . .
267
13.7. Problemy
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
268
14. Co dalej?
271
14.1. Problemy
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
272
A. Dodatki
273
A.1. Wybrane opcje kompilatora g++
. . . . . . . . . . . . . . . . . . . . .
273
A.2. Dodatkowe elementy j#zyka
. . . . . . . . . . . . . . . . . . . . . . .
275
A.3. Zgodno•' j#zyka C++ z j#zykiem C
. . . . . . . . . . . . . . . . . . .
276
A.4. Przyszło•' j#zyka C++
. . . . . . . . . . . . . . . . . . . . . . . . . .
277
A.5. $ródła informacji w internecie
. . . . . . . . . . . . . . . . . . . . . .
278
[ Pobierz całość w formacie PDF ]