Jezyk C++ Pierwsze starcie.pdf
(
380 KB
)
Pobierz
Język C++. Pierwsze starcie
Pierwsze starcie
Autor: Zbigniew Koza
ISBN: 978-83-246-1481-3
Format: B5, stron: 288
Wydawnictwo Helion
ul. Koľciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
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
Jķzyk C++.
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
Plik z chomika:
Ravel25
Inne pliki z tego folderu:
Asembler dla procesorow Intel Vademecum profesjonalisty.pdf
(400 KB)
Asembler cwiczenia praktyczne.pdf
(358 KB)
Architektura systemow zarzadzania przedsiebiorstwem Wzorce projektowe.pdf
(829 KB)
Architektura oprogramowania Metody oceny oraz analiza przypadkow.pdf
(429 KB)
Aplikacje w Visual C++ 2005 Przyklady.pdf
(296 KB)
Inne foldery tego chomika:
(X) HTML
algorytmy i struktury danych
asembler
C++
Core JAVA2 Podstawy
Zgłoś jeśli
naruszono regulamin