C++ Inzynieria programowania.pdf
(
2946 KB
)
Pobierz
C:\Andrzej\PDF\ABC nagrywania p³yt CD\1 strona.cdr
IDZ DO
PRZYK£ADOW
Y ROZDZIA£
C++. In¿ynieria
SPIS TRECI
programowania
Autor: Victor Shtern
T³umaczenie: Daniel Kaczmarek (rozdz. 1 – 6), Adam
Majczak (rozdz. 7 – 11), Rafa³ Szpoton (rozdz. 12 – 19)
ISBN: 83-7361-171-1
Tytu³ orygina³
u:
Core C++: A Software Engineering Approach
Format: B5, stron: 1084
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
Naucz siê jêzyka C++ w najlepszy sposób: poznaj¹c go z punktu widzenia
in¿ynierii programowania
• Demonstruje praktyczne techniki stosowane przez zawodowych programistów
• Zawiera poprawny, gruntownie przetestowany przyk³adowy kod ród³owy
programów oraz przyk³ady zaczerpniête z praktyki
• Skoncentrowana na nowoczesnych technologiach, które musz¹ poznaæ programici
• Zawiera rady profesjonalistów, które pozwol¹ czytelnikowi tworzyæ
najlepsze programy
Ksi¹¿ka
Wiktora Shterna
zatytu³owana „C++. In¿ynieria programowania” stosuje wyj¹tkowy
sposób nauki jêzyka C++ przeznaczony dla programistów maj¹cych dowiadczenie
w dowolnym jêzyku programowania: prezentuje mo¿liwoæ zastosowania w C++
najlepszych technik programistycznych oraz metodologii in¿ynierii programowania.
Nawet je¿eli ju¿ wczeniej wykorzystywa³e jêzyk C++, ta wyczerpuj¹ca ksi¹¿ka przedstawi
sposób tworzenia poprawniejszego kodu, ³atwiejszego do utrzymania i modyfikacji. Ksi¹¿ka
niniejsza uczy zasad programowania obiektowego przed sam¹ nauk¹ jêzyka, co pozwala
wykorzystaæ wszystkie zalety OOP do tworzenia poprawnych aplikacji. Udoskonalisz
znajomoæ kluczowych sk³adników standardu ANSI/ISO C++ rozpatrywanych z punktu
widzenia in¿yniera: klas, metod, modyfikatorów const, dynamicznego zarz¹dzania pamiêci¹,
z³o¿eñ klas, dziedziczenia, polimorfizmu, operacji wejcia-wyjcia i wielu innych.
Je¿eli pragniesz tworzyæ w jêzyku C++ najlepsze programy, musisz projektowaæ, myleæ
i programowaæ stosuj¹c najlepsze obecnie praktyki in¿ynierii programowania.
Lektura ksi¹¿ki „C++. In¿ynieria programowania” pomo¿e Ci w tym.
Ksi¹¿ka „C++. In¿ynieria programowania” k³adzie nacisk na:
DODAJ DO KOSZYKA
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
• Prezentacjê zastosowañ zasad in¿ynierii programowania w programach pisanych w C++
• Tworzenie kodu ³atwego do póniejszych modyfikacji
• Praktyczne zrozumienie zasad programowania obiektowego przed nauk¹
samego jêzyka
• Przedstawienie najnowszych cech standardu ANSI/ISO C++
• Zaprezentowanie setek realistycznych przyk³adów kodu programów
Wiktor Shtern
jest profesorem wyk³adaj¹cym w college’u przy uniwersytecie w Bostonie,
uznawanym za jedn¹ z najlepszych w Stanach Zjednoczonych szkó³ dla osób pracuj¹cych
zawodowo. Oprócz wyk³adów z jêzyka C++ na poziomie uniwersyteckim, Shtern prowadzi
równie¿ zajêcia praktyczne dla dowiadczonych programistów.
Dan Costello
jest in¿ynierem oprogramowania w firmie GE Marquette Medical Systems
Spis treci
Wprowadzenie 15
Co odrónia t ksik od innych ksiek o C++?....................................................... 15
Dla kogo jest przeznaczona ta ksika? ..................................................................... 17
Jak korzysta! z tej ksiki? ....................................................................................... 17
Konwencje stosowane w ksice............................................................................... 18
Dostp do kodów %ródłowych .................................................................................... 19
Cz I Wprowadzenie do programowania w jzyku C++
21
Rozdział 1. Podejcie zorientowane obiektowo
—
co je wyrónia? 23
(ródła kryzysu oprogramowania................................................................................. 24
Rozwizanie 1.
—
wyeliminowanie programistów ........................................................ 28
Rozwizanie 2.
—
ulepszone techniki zarzdzania ...................................................... 30
Metoda wodospadu ............................................................................................ 31
Szybkie tworzenie prototypu................................................................................. 32
Rozwizanie 3.
—
projektowanie złoonego i rozwlekłego jzyka .................................. 33
Podej4cie zorientowane obiektowo
—
czy dostaniemy co4 za nic?................................ 34
Na czym polega praca projektanta?...................................................................... 35
Jako4! projektu
—
spójno4!................................................................................ 37
Jako4! projektu
—
łczno4! ................................................................................ 37
Jako4! projektu
—
wizanie danych i funkcji ......................................................... 38
Jako4! projektu
—
ukrywanie informacji i kapsułkowanie ....................................... 40
Sprawa projektowania
—
konflikty nazewnictwa .................................................... 41
Sprawa projektowania
—
inicjalizacja obiektu ....................................................... 42
Czym jest obiekt? ............................................................................................... 43
Zalety stosowania obiektów................................................................................. 44
Charakterystyka jzyka C++ ...................................................................................... 45
Cele jzyka C
—
wydajno4!, czytelno4!, pikno i przeno4no4!................................ 45
Cele jzyka C++
—
klasy ze wsteczn zgodno4ci z C............................................ 47
Podsumowanie ........................................................................................................ 50
krótki przegl#d j$zyka C++ 53
Podstawowa struktura programu ............................................................................... 54
Dyrektywy preprocesora............................................................................................ 56
Komentarze............................................................................................................. 60
Deklaracje i definicje................................................................................................ 63
Instrukcje i wyraenia ............................................................................................... 69
Funkcje i wywołania funkcji ....................................................................................... 77
—
Rozdział 2. Szybki start
6 C++. Inynieria programowania
Klasy ...................................................................................................................... 86
Praca z narzdziami programistycznymi...................................................................... 90
Podsumowanie ........................................................................................................ 94
Rozdział 3. Praca z danymi i wyraeniami w C++ 95
Warto4ci i ich typy.................................................................................................... 96
Typy całkowitoliczbowe ............................................................................................. 98
Kwalifikatory typu całkowitoliczbowego ............................................................... 100
Znaki ............................................................................................................... 104
Warto4ci logiczne.............................................................................................. 106
Typy liczb zmiennoprzecinkowych............................................................................. 107
Praca z wyraeniami C++........................................................................................ 109
Operatory o wysokim priorytecie......................................................................... 110
Operatory arytmetyczne..................................................................................... 111
Operatory przesunicia...................................................................................... 114
Bitowe operatory logiczne.................................................................................. 115
Operatory relacji i równo4ci................................................................................ 118
Operatory logiczne ............................................................................................ 120
Operatory przypisania........................................................................................ 122
Operator warunkowy.......................................................................................... 123
Operator przecinkowy........................................................................................ 124
Wyraenia mieszane
—
ukryte zagroenia ................................................................ 125
Podsumowanie ...................................................................................................... 131
Rozdział 4. Sterowanie przebiegiem programu C++ 133
Instrukcje i wyraenia ............................................................................................. 134
Instrukcje warunkowe............................................................................................. 136
Standardowe formy instrukcji warunkowych......................................................... 136
Czste błdy w instrukcjach warunkowych........................................................... 140
Zagniedone instrukcje warunkowe i ich optymalizacja ....................................... 152
Iteracje ................................................................................................................. 158
Zastosowanie ptli WHILE ................................................................................. 159
Iteracje w ptli DO-WHILE .................................................................................. 167
Iteracje w ptli FOR........................................................................................... 170
Instrukcje skoków w C++........................................................................................ 173
Instrukcja BREAK.............................................................................................. 174
Instrukcja CONTINUE......................................................................................... 177
Instrukcja GOTO ............................................................................................... 178
Instrukcje skoków RETURN i EXIT....................................................................... 179
Instrukcja SWITCH ............................................................................................ 183
Podsumowanie ...................................................................................................... 186
Rozdział 5. Agregacja za pomoc# typów danych zdefiniowanych przez programist$ 187
Tablice jako agregaty homogeniczne........................................................................ 188
Tablice jako wektory warto4ci............................................................................. 188
Definiowanie tablic C++ .................................................................................... 190
Operacje na tablicach ....................................................................................... 193
Sprawdzanie poprawno4ci indeksów................................................................... 194
Tablice wielowymiarowe .................................................................................... 197
Definiowanie tablic znaków................................................................................ 200
Operacje na tablicach znaków............................................................................ 202
Funkcje łaHcuchowe a błdy pamici .................................................................. 204
Spis treci 7
Dwuwymiarowe tablice znaków........................................................................... 208
Przepełnienie tablic w algorytmach je wypełniajcych ........................................... 210
Definiowanie typów tablicowych ......................................................................... 214
Struktury jako agregaty heterogeniczne.................................................................... 216
Definiowanie struktur jako typów zdefiniowanych przez programist ...................... 216
Tworzenie i inicjalizowanie zmiennych strukturalnych ........................................... 217
Struktury hierarchiczne i ich komponenty ............................................................ 219
Operacje na zmiennych strukturalnych................................................................ 220
Definiowanie struktur w programach złoonych z wielu plików ............................... 222
Unie, typy wyliczeniowe i pola bitowe ....................................................................... 223
Unie ................................................................................................................ 223
Typy wyliczeniowe ............................................................................................. 227
Pola bitowe ...................................................................................................... 229
Podsumowanie ...................................................................................................... 233
stos i sterta 235
Zasig nazw jako narzdzie współpracy.................................................................... 236
Zasigi leksykalne C++ ..................................................................................... 236
Konflikty nazw w tym samym zasigu ................................................................. 237
Stosowanie takich samych nazw w zasigach niezalenych .................................. 241
Stosowanie takich samych nazw w zasigach zagniedonych .............................. 241
Zasig zmiennych ptli...................................................................................... 246
Zarzdzanie pamici
—
klasy pamici.................................................................... 246
Zmienne automatyczne ..................................................................................... 248
Zmienne zewntrzne ......................................................................................... 251
Zmienne statyczne............................................................................................ 257
Zarzdzanie pamici
—
zastosowanie sterty........................................................... 261
Wska%niki C++ jako zmienne o okre4lonym typie ................................................. 263
Alokowanie pamici na stercie........................................................................... 268
Tablice i wska%niki............................................................................................ 273
Tablice dynamiczne........................................................................................... 276
Struktury dynamiczne........................................................................................ 290
Operacje wej4cia i wyj4cia na plikach....................................................................... 300
Zapisywanie do pliku......................................................................................... 301
Odczyt z pliku ................................................................................................... 304
Plikowe obiekty wej4cia-wyj4cia.......................................................................... 308
Podsumowanie ...................................................................................................... 311
—
Cz II Programowanie obiektowe w C++
313
Rozdział 7. Programowanie w C++ z zastosowaniem funkcji 315
Funkcje w C++ jako narzdzie modularyzacji programu.............................................. 317
Deklaracje funkcji ............................................................................................. 318
Definicje funkcji................................................................................................ 319
Wywołania funkcji ............................................................................................. 320
Promocja i konwersja argumentów funkcji ................................................................ 323
Przekazywanie parametrów do funkcji w C++............................................................ 326
Przekazanie parametru przez warto4! ................................................................. 326
Przekazanie parametrów poprzez wska%nik ......................................................... 328
Przekazanie parametrów do funkcji charakterystycznej dla C++
—
poprzez referencj................................................................................... 336
Struktury.......................................................................................................... 341
Rozdział 6. Zarz#dzanie pami$ci#
8 C++. Inynieria programowania
Tablice............................................................................................................. 348
Wicej o konwersjach typów .............................................................................. 352
Zwracanie warto4ci z funkcji .............................................................................. 355
Funkcje wplecione
—
inline..................................................................................... 361
Parametry funkcji z warto4ciami domy4lnymi ............................................................ 364
Przecianie nazw funkcji........................................................................................ 370
Podsumowanie ...................................................................................................... 377
Rozdział 8. Programowanie obiektowe z zastosowaniem funkcji 381
Kohezja................................................................................................................. 385
Sprzganie ............................................................................................................ 386
Niejawne sprzenie ......................................................................................... 386
Jawne sprzenie.............................................................................................. 390
Jak zredukowa! intensywno4! sprzgania? ......................................................... 395
Hermetyzacja danych.............................................................................................. 400
Ukrywanie danych .................................................................................................. 407
Wikszy przykład hermetyzacji danych...................................................................... 413
Wady hermetyzacji danych przy uyciu funkcji ........................................................... 422
Podsumowanie ...................................................................................................... 425
Rozdział 9. Klasy w C++ jako jednostki modularyzacji 427
Podstawowa składnia definicji klasy ........................................................................ 430
Połczenie danych i operacji .............................................................................. 430
Eliminowanie konfliktów nazw ............................................................................ 435
Implementacja kodów metod poza definicj klasy................................................ 439
Definiowane obiektów przechowywanych w pamici rónych kategorii.................... 443
Kontrolowanie dostpu do komponentów klasy ........................................................ 444
Inicjowanie obiektów danej klasy............................................................................. 451
Konstruktory
—
jako metody.............................................................................. 452
Konstruktory domy4lne...................................................................................... 455
Konstruktory kopiujce...................................................................................... 457
Konstruktory konwersji...................................................................................... 461
Destruktory ...................................................................................................... 463
Co i kiedy, czyli co naprawd robi konstruktory i destruktory ............................... 468
Widoczno4! nazw w obrbie klasy i przesłanianie nazw przy zagniedaniu ............ 469
Zarzdzanie pamici za pomoc operatorów i wywołaH funkcji ............................ 472
Zastosowanie w kodzie klienta obiektów zwracanych przez funkcje............................. 476
Zwrot wska%ników i referencji............................................................................. 476
Zwrot obiektów z funkcji .................................................................................... 479
Wicej o stosowaniu słowa kluczowego const .......................................................... 482
Statyczne komponenty klas .................................................................................... 488
Zastosowanie zmiennych globalnych jako charakterystyk klas .............................. 489
Czwarte znaczenie słowa kluczowego static ........................................................ 491
Inicjowanie statycznych pól danych..................................................................... 492
Statyczne metody ............................................................................................. 493
Podsumowanie ...................................................................................................... 497
jeszcze jeden dobry pomysł 499
Przecianie operatorów ......................................................................................... 501
Ograniczenia w przecianiu operatorów .................................................................. 510
Które operatory nie mog by! poddane przecianiu? .......................................... 510
Ograniczenia typów warto4ci zwracanych przez funkcje operatorowe...................... 512
—
Rozdział 10. Funkcje operatorowe
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