Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00271 007382 13827995 na godz. na dobę w sumie
C++ dla każdego. Wydanie II - książka
C++ dla każdego. Wydanie II - książka
Autor: , , Liczba stron: 944
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-246-2782-0 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> c++ - programowanie
Porównaj ceny (książka, ebook, audiobook).

Poznaj język C++ w 21 dni!

Pomimo swojego wieku, język C++ wciąż utrzymuje wysoką formę. Przez lata zdobył i ugruntował sobie świetną pozycję na rynku języków programowania. Dzięki temu, nawet dziś w czasach gdzie króluje język Java oraz platforma .NET, wciąż swoich zwolenników. Ba! Istnieją takie gałęzie oprogramowania, w których jest on niezastąpiony. Dlatego jeżeli oczekujesz najwyższej wydajności, operowania blisko sprzętu oraz pełnej kontroli nad sposobem wykonywania programu powinieneś postawić właśnie na C++.

Dzięki książce, którą trzymasz w ręku będzie to stosunkowo proste zadanie. Poświęcając tylko godzinę dziennie zdobędziesz wiedzę, która pozwoli Ci spokojnie rozpocząć przygodę z językiem C++, poznać jego tajniki, zalety oraz wady. Z każdą kolejną godziną będziesz zdobywać coraz to bardziej zaawansowaną i ciekawą wiedzę. Jaki więc zakres obejmuje niniejszy podręcznik? Kompletny, którego opanowanie pozwoli Ci na pisanie programów o różnym stopniu złożoności oraz swobodne poruszanie się w świecie języka C++. Zdobędziesz informacje na temat stałych, zmiennych, tablic, instrukcji warunkowych oraz pętli. Ponadto dowiesz się, jak wykorzystać wskaźniki oraz dyrektywy kompilatora. Natomiast lektura ostatnich rozdziałów książki pozwoli Ci na swobodne poruszanie się w świecie programowania obiektowego, strumieni oraz klas STL. Obiekty, klasy, dziedziczenie czy polimorfizm - te pojęcia nie skryją przed Tobą już żadnej tajemnicy! Kolejne wydanie cenionej książki sprawdzi się w rękach każdego adepta języka C++. Jeżeli chcesz poznać ten język, to nie ma na co czekać. Lepszej okazji nie będzie!

Sprawdź czy język C++ spełni Twoje oczekiwania!

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Idź do • Spis treści • Przykładowy rozdział Katalog książek • Katalog online • Zamów drukowany katalog Twój koszyk • Dodaj do koszyka Cennik i informacje • Zamów informacje o nowościach • Zamów cennik Czytelnia • Fragmenty książek online Kontakt Helion SA ul. Kościuszki 1c 44-100 Gliwice tel. 32 230 98 63 e-mail: helion@helion.pl © Helion 1991–2010 C++ dla każdego. Wydanie II Autorzy: Jesse Liberty, Siddhartha Rao, Bradley L. Jones Tłumaczenie: Robert Górczyński ISBN: 978-83-246-2782-0 Tytuł oryginału: Sams Teach Yourself C++ in One Hour a Day (6th Edition) Format: B5, stron: 850 Poznaj język C++ w 21 dni! Pomimo swojego wieku, język C++ wciąż utrzymuje wysoką formę. Przez lata zdobył i ugruntował sobie świetną pozycję na rynku języków programowania. Dzięki temu, nawet dziś w czasach gdzie króluje język Java oraz platforma .NET, wciąż swoich zwolenników. Ba! Istnieją takie gałęzie oprogramowania, w których jest on niezastąpiony. Dlatego jeżeli oczekujesz najwyższej wydajności, operowania blisko sprzętu oraz pełnej kontroli nad sposobem wykonywania programu powinieneś postawić właśnie na C++. Dzięki książce, którą trzymasz w ręku będzie to stosunkowo proste zadanie. Poświęcając tylko godzinę dziennie zdobędziesz wiedzę, która pozwoli Ci spokojnie rozpocząć przygodę z językiem C++, poznać jego tajniki, zalety oraz wady. Z każdą kolejną godziną będziesz zdobywać coraz to bardziej zaawansowaną i ciekawą wiedzę. Jaki więc zakres obejmuje niniejszy podręcznik? Kompletny, którego opanowanie pozwoli Ci na pisanie programów o różnym stopniu złożoności oraz swobodne poruszanie się w świecie języka C++. Zdobędziesz informacje na temat stałych, zmiennych, tablic, instrukcji warunkowych oraz pętli. Ponadto dowiesz się, jak wykorzystać wskaźniki oraz dyrektywy kompilatora. Natomiast lektura ostatnich rozdziałów książki pozwoli Ci na swobodne poruszanie się w świecie programowania obiektowego, strumieni oraz klas STL. Obiekty, klasy, dziedziczenie czy polimorfizm – te pojęcia nie skryją przed Tobą już żadnej tajemnicy! Kolejne wydanie cenionej książki sprawdzi się w rękach każdego adepta języka C++. Jeżeli chcesz poznać ten język, to nie ma na co czekać. Lepszej okazji nie będzie! • Historia języka C++ • Konstrukcja programu w języku C++ • Komentowanie kodu • Zmienne i stałe • Zastosowanie tablic i ciągów tekstowych • Formułowanie wyrażeń • Instrukcje warunkowe i operatory • Wykorzystanie i tworzenie funkcji • Zakresy zmiennych • Sterowanie przebiegiem programu • Zasada działania wskaźników • Programowanie obiektowe – klasy, obiekty, dziedziczenie, polimorfizm • Rzutowanie • Wykorzystanie strumieni • Kompilowanie warunkowe, instrukcje kompilatora Sprawdź czy język C++ spełni Twoje oczekiwania! Spis treĂci WstÚp 25 CzÚĂÊ I Podstawy Lekcja 1. Zaczynamy 31 Krótka historia j¸zyka C++ ............................................................................................31 Interpretery i kompilatory ....................................................................................33 Zmiana wymagaÑ, zmiana platform ..................................................................34 Programowanie proceduralne, strukturalne i obiektowe .......................35 Programowanie zorientowane obiektowo .....................................................36 C++ i programowanie zorientowane obiektowo .............................................37 Jak ewoluowaÏo C++ ........................................................................................................38 Czy naleĂy najpierw pozna© C? ...................................................................................39 Dodatek Microsoft Managed Extensions for C++ ................................................39 Standard ANSI ....................................................................................................................39 Przygotowanie do programowania ..........................................................................40 Twoje ärodowisko programowania ..........................................................................41 Tworzenie programu ......................................................................................................42 Tworzenie pliku obiektowego za pomoc¦ kompilatora ...........................42 Tworzenie pliku wykonywalnego za pomoc¦ linkera ...............................43 Cykl tworzenia programu .............................................................................................43 HELLO.cpp — Twój pierwszy program w C++ ....................................................45 Zaczynamy prac¸ z kompilatorem ............................................................................47 Budowanie projektu Hello World .......................................................................48 Bϸdy kompilacji ................................................................................................................49 Podsumowanie ...................................................................................................................50 Pytania i odpowiedzi .......................................................................................................50 Warsztaty .............................................................................................................................51 Quiz ..................................................................................................................................52 *wiczenia .......................................................................................................................52 4 C++ dla kaĝdego Lekcja 2. Anatomia programu C++ Lekcja 3. Zmienne i staïe 53 Prosty program ................................................................................................................. 53 Rzut oka na obiekt cout ................................................................................................. 56 UĂywanie przestrzeni nazw standardowych ....................................................... 58 Komentarze ......................................................................................................................... 61 Rodzaje komentarzy ................................................................................................. 61 UĂywanie komentarzy ............................................................................................. 62 Jeszcze jedna uwaga na temat komentarzy ................................................... 63 Funkcje .................................................................................................................................. 63 Korzystanie z funkcji ................................................................................................ 65 Metody kontra funkcje ............................................................................................ 67 Podsumowanie .................................................................................................................. 67 Pytania i odpowiedzi ....................................................................................................... 67 Warsztaty ............................................................................................................................. 68 Quiz .................................................................................................................................. 68 *wiczenia ...................................................................................................................... 69 71 Czym jest zmienna? ......................................................................................................... 71 Dane s¦ przechowywane w pami¸ci ................................................................. 71 Przydzielanie pami¸ci ............................................................................................. 72 Rozmiar liczb caÏkowitych .................................................................................... 73 Zapis ze znakiem i bez znaku ............................................................................... 74 Podstawowe typy zmiennych .............................................................................. 74 Definiowanie zmiennej .................................................................................................. 75 Uwzgl¸dnianie wielkoäci liter .............................................................................. 77 Konwencje nazywania zmiennych ..................................................................... 77 SÏowa kluczowe .......................................................................................................... 78 Okreälenie iloäci pami¸ci uĂywanej przez typ zmiennej ................................ 79 Tworzenie kilku zmiennych jednoczeänie ............................................................ 81 Przypisywanie zmiennym wartoäci ......................................................................... 81 Tworzenie aliasów za pomoc¦ typedef ................................................................... 83 Kiedy uĂywa© typu short, a kiedy typu long? ....................................................... 84 Zawini¸cie liczby caÏkowitej bez znaku ........................................................... 85 Zawini¸cie liczby caÏkowitej ze znakiem ........................................................ 86 Spis treĂci 5 Lekcja 4. Tablice i ciÈgi tekstowe Znaki .......................................................................................................................................87 Znaki i liczby ................................................................................................................88 Znaki specjalne ............................................................................................................89 StaÏe ........................................................................................................................................90 LiteraÏy ...........................................................................................................................90 StaÏe symboliczne ......................................................................................................91 StaÏe wyliczeniowe ...........................................................................................................92 Podsumowanie ...................................................................................................................95 Pytania i odpowiedzi .......................................................................................................96 Warsztaty .............................................................................................................................97 Quiz ..................................................................................................................................97 *wiczenia .......................................................................................................................98 99 Czym jest tablica? ..............................................................................................................99 Elementy tablicy ...................................................................................................... 100 Zapisywanie za koÑcem tablicy ........................................................................ 102 BϦd sÏupka w pÏocie ............................................................................................. 104 Inicjalizowanie tablic ............................................................................................ 105 Deklarowanie tablic ............................................................................................... 106 Tablice wielowymiarowe ........................................................................................... 107 Deklarowanie tablic wielowymiarowych ..................................................... 108 Inicjalizowanie tablic wielowymiarowych .................................................. 110 Tablice znaków i ci¦gi tekstowe .............................................................................. 113 Metody strcpy() oraz strncpy() ............................................................................... 115 Klasy ci¦gów tekstowych ........................................................................................... 117 Podsumowanie ................................................................................................................ 120 Pytania i odpowiedzi .................................................................................................... 120 Warsztaty .......................................................................................................................... 121 Quiz ............................................................................................................................... 121 *wiczenia .................................................................................................................... 122 123 Instrukcje ........................................................................................................................... 123 BiaÏe znaki .................................................................................................................. 124 Bloki i instrukcje zÏoĂone .................................................................................... 124 WyraĂenia ......................................................................................................................... 125 Lekcja 5. Wyraĝenia, instrukcje i operatory 6 C++ dla kaĝdego Operatory ...........................................................................................................................126 Operator przypisania .............................................................................................127 Operatory matematyczne ....................................................................................127 O¦czenie operatora przypisania z operatorem matematycznym .............130 Inkrementacja i dekrementacja ...............................................................................130 Przedrostki i przyrostki ........................................................................................131 Kolejnoä© dziaÏaÑ ............................................................................................................133 ZagnieĂdĂanie nawiasów ............................................................................................134 Prawda i faÏsz ...................................................................................................................135 Operatory relacji ......................................................................................................136 Instrukcja if .......................................................................................................................137 Styl wci¸© .....................................................................................................................141 Instrukcja else ...........................................................................................................141 Zaawansowane instrukcje if ...............................................................................143 UĂycie nawiasów klamrowych w zagnieĂdĂonych instrukcjach if ...........146 Operatory logiczne .........................................................................................................149 Logiczne I ....................................................................................................................149 Logiczne LUB .............................................................................................................150 Logiczne NIE ..............................................................................................................150 Skrócone obliczanie wyraĂeÑ logicznych ............................................................150 Kolejnoä© operatorów logicznych ...........................................................................151 Kilka sÏów na temat prawdy i faÏszu ......................................................................152 Operator warunkowy (trójelementowy) .............................................................152 Podsumowanie ................................................................................................................154 Pytania i odpowiedzi .....................................................................................................154 Warsztaty ...........................................................................................................................155 Quiz ................................................................................................................................155 *wiczenia ....................................................................................................................156 159 Czym jest funkcja? ..........................................................................................................159 Zwracane wartoäci, parametry i argumenty ......................................................160 Deklarowanie i definiowanie funkcji .....................................................................161 Prototypy funkcji .....................................................................................................162 Definiowanie funkcji ..............................................................................................164 Wykonywanie funkcji ...................................................................................................166 Lekcja 6. Funkcje Spis treĂci 7 Zakres zmiennej ............................................................................................................. 166 Zmienne lokalne ...................................................................................................... 166 Zmienne lokalne zdefiniowane w blokach .................................................. 168 Parametry s¦ zmiennymi lokalnymi ...................................................................... 170 Zmienne globalne .................................................................................................... 172 Zmienne globalne: ostrzeĂenie ......................................................................... 173 RozwaĂania na temat tworzenia instrukcji funkcji ........................................ 174 Kilka sÏów na temat argumentów funkcji ........................................................... 174 Kilka sÏów na temat zwracanych wartoäci ......................................................... 175 Parametry domyälne .................................................................................................... 178 Przeci¦Ăanie funkcji ...................................................................................................... 181 Zagadnienia zwi¦zane z funkcjami ......................................................................... 185 Funkcje typu inline ................................................................................................. 185 Rekurencja ................................................................................................................. 188 Jak dziaÏaj¦ funkcje — rzut oka „pod mask¸” .................................................... 193 Poziomy abstrakcji ................................................................................................. 193 Podsumowanie ................................................................................................................ 198 Pytania i odpowiedzi .................................................................................................... 199 Warsztaty .......................................................................................................................... 200 Quiz ............................................................................................................................... 200 *wiczenia .................................................................................................................... 200 203 P¸tle ..................................................................................................................................... 203 Pocz¦tki p¸tli: instrukcja goto ........................................................................... 203 Dlaczego nie jest zalecane stosowanie instrukcji goto? ......................... 205 P¸tle while ......................................................................................................................... 205 Bardziej skomplikowane instrukcje while .................................................. 207 Instrukcje continue oraz break ......................................................................... 209 P¸tla while (true) .................................................................................................... 212 Implementacja p¸tli do...while ................................................................................. 213 UĂywanie p¸tli do...while ............................................................................................ 214 P¸tle for .............................................................................................................................. 216 Zaawansowane p¸tle for ...................................................................................... 219 Puste p¸tle for .......................................................................................................... 222 P¸tle zagnieĂdĂone ................................................................................................. 223 Zakres zmiennych w p¸tlach for ...................................................................... 225 Lekcja 7. Sterowanie przebiegiem dziaïania programu 8 C++ dla kaĝdego Lekcja 8. Wskaěniki Podsumowanie p¸tli ......................................................................................................226 Sterowanie przebiegiem dziaÏania programu za pomoc¦ instrukcji switch ...................................................................................229 UĂycie instrukcji switch w menu ......................................................................232 Podsumowanie ................................................................................................................236 Pytania i odpowiedzi .....................................................................................................236 Warsztaty ...........................................................................................................................237 Quiz ................................................................................................................................238 *wiczenia ....................................................................................................................238 241 Czym jest wskaĀnik? .....................................................................................................241 Kilka sÏów na temat pami¸ci ...............................................................................241 UĂycie operatora adresu zmiennej w pami¸ci ( ) ...................................242 Przechowywanie adresu zmiennej we wskaĀniku ...................................244 Nazwy wskaĀników ................................................................................................244 Pobranie wartoäci ze zmiennej .........................................................................245 Dereferencja za pomoc¦ operatora wyÏuskania ........................................246 WskaĀniki, adresy i zmienne ..............................................................................247 Operowanie danymi poprzez wskaĀniki .......................................................248 Sprawdzanie adresu ...............................................................................................250 Nazwy wskaĀników i tablic .................................................................................252 WskaĀnik do tablicy kontra tablica wskaĀników ......................................254 Do czego sÏuæ wskaĀniki? .........................................................................................255 Stos i sterta ........................................................................................................................255 Alokacja pami¸ci za pomoc¦ sÏowa kluczowego new .............................257 Zwalnianie pami¸ci: sÏowo kluczowe delete ...............................................258 Inne spojrzenie na wycieki pami¸ci .......................................................................260 Tworzenie obiektów na stercie ................................................................................261 Usuwanie obiektów ze sterty ....................................................................................261 Utracone wskaĀniki .......................................................................................................263 WskaĀniki const ..............................................................................................................267 Podsumowanie ................................................................................................................268 Pytania i odpowiedzi .....................................................................................................268 Warsztaty ...........................................................................................................................269 Quiz ................................................................................................................................269 *wiczenia ....................................................................................................................269 Spis treĂci 9 Lekcja 9. Referencje 271 Czym jest referencja? ................................................................................................... 271 UĂycie operatora adresu ( ) z referencj¦ ........................................................... 273 Nie moĂna zmienia© przypisania referencji ................................................ 275 Zerowe wskaĀniki i zerowe referencje ................................................................. 276 Przekazywanie argumentów funkcji przez referencj¸ .................................. 277 Tworzenie funkcji swap() otrzymuj¦cej wskaĀniki ................................. 279 Implementacja funkcji swap() za pomoc¦ referencji .............................. 281 Zwracanie kilku wartoäci ........................................................................................... 283 Zwracanie wartoäci przez referencj¸ ............................................................. 285 Przekazywanie przez referencj¸ zwi¸ksza efektywnoä© dziaÏania programu .................................................................................................... 286 Przekazywanie wskaĀnika const ...................................................................... 290 Referencje jako metoda alternatywna ........................................................... 293 Kiedy uĂywa© wskaĀników, a kiedy referencji ................................................. 295 O¦czenie referencji i wskaĀników ........................................................................... 296 Zwracanie referencji do obiektu, którego nie ma w zakresie .................... 298 Problem zwi¦zany ze zwracaniem referencji do obiektu na stercie ........ 299 Podsumowanie ................................................................................................................ 301 Pytania i odpowiedzi .................................................................................................... 301 Warsztaty .......................................................................................................................... 302 Quiz ............................................................................................................................... 302 *wiczenia .................................................................................................................... 302 CzÚĂÊ II Podstawy programowania zorientowanego obiektowo i C++ Lekcja 10. Klasy i obiekty 307 Czy C++ jest zorientowane obiektowo? ............................................................... 307 Tworzenie nowych typów .......................................................................................... 309 Wprowadzenie klas i elementów skÏadowych ................................................. 310 Deklarowanie klasy ................................................................................................ 311 Kilka sÏów o konwencji nazw ............................................................................ 311 Definiowanie obiektu ............................................................................................ 313 Klasy a obiekty ......................................................................................................... 313 Dost¸p do elementów skÏadowych klasy ............................................................ 313 Przypisywa© naleĂy obiektom, nie klasom .................................................. 314 Czego nie zadeklarujesz, tego klasa nie b¸dzie miaÏa ............................. 314 10 C++ dla kaĝdego Lekcja 11. Dziedziczenie Dost¸p prywatny i publiczny ....................................................................................315 Oznaczanie danych skÏadowych jako prywatnych ...................................317 Implementowanie metod klasy ................................................................................321 Konstruktory i destruktory ........................................................................................324 Domyälne konstruktory i destruktory ...........................................................325 UĂycie domyälnego konstruktora ....................................................................326 Funkcje skÏadowe const ..............................................................................................329 Gdzie umieszcza© deklaracje klasy i definicje metod .....................................331 Implementacja inline ....................................................................................................332 Klasy, których danymi skÏadowymi s¦ inne klasy ...........................................335 Struktury ............................................................................................................................340 Podsumowanie ................................................................................................................340 Pytania i odpowiedzi .....................................................................................................341 Warsztaty ...........................................................................................................................343 Quiz ................................................................................................................................343 *wiczenia ....................................................................................................................343 345 Czym jest dziedziczenie? .............................................................................................345 Dziedziczenie i wyprowadzanie ........................................................................346 Królestwo zwierz¦t .................................................................................................347 SkÏadnia wyprowadzania .....................................................................................348 Prywatne kontra chronione .......................................................................................350 Dziedziczenie oraz konstruktory i destruktory ................................................353 Przekazywanie argumentów do konstruktorów bazowych .................355 PrzesÏanianie funkcji klasy bazowej ......................................................................360 Ukrywanie metod klasy bazowej ......................................................................363 WywoÏywanie metod klasy bazowej ..............................................................365 Metody wirtualne ...........................................................................................................367 Jak dziaÏaj¦ funkcje wirtualne ............................................................................372 Próba uzyskania dost¸pu do metod klasy bazowej ..................................373 Okrajanie .....................................................................................................................374 Tworzenie destruktorów wirtualnych ...........................................................377 Wirtualne konstruktory kopiuj¦ce ..................................................................377 Koszt metod wirtualnych .....................................................................................381 Dziedziczenie prywatne ..............................................................................................381 UĂywanie dziedziczenia prywatnego .............................................................382 Dziedziczenie prywatne kontra agregacja (zÏoĂenie) .............................384 Spis treĂci 11 Lekcja 12. Polimorfizm Podsumowanie ................................................................................................................ 385 Pytania i odpowiedzi .................................................................................................... 386 Warsztaty .......................................................................................................................... 387 Quiz ............................................................................................................................... 387 *wiczenia .................................................................................................................... 388 389 Problemy z pojedynczym dziedziczeniem .......................................................... 389 Przenoszenie w gór¸ .............................................................................................. 392 Rzutowanie w dóÏ ................................................................................................... 393 PoϦczenie dwóch list ............................................................................................ 396 Dziedziczenie wielokrotne ......................................................................................... 397 Cz¸äci obiektu z dziedziczeniem wielokrotnym ....................................... 401 Konstruktory w obiektach dziedziczonych wielokrotnie ..................... 402 Eliminowanie niejednoznacznoäci .................................................................. 405 Dziedziczenie ze wspólnej klasy bazowej .................................................... 406 Dziedziczenie wirtualne ....................................................................................... 410 Problemy z dziedziczeniem wielokrotnym ................................................. 415 Mixiny i klasy metod .............................................................................................. 415 Abstrakcyjne typy danych .......................................................................................... 416 Czyste funkcje wirtualne ..................................................................................... 420 Implementowanie czystych funkcji wirtualnych ...................................... 422 ZÏoĂone hierarchie abstrakcji ............................................................................ 426 Które typy s¦ abstrakcyjne? ............................................................................... 430 Podsumowanie ................................................................................................................ 430 Pytania i odpowiedzi .................................................................................................... 431 Warsztaty .......................................................................................................................... 432 Quiz ............................................................................................................................... 432 *wiczenia .................................................................................................................... 433 435 Czym s¦ operatory w C++? ......................................................................................... 435 Operatory jednoargumentowe ................................................................................ 436 Typy operatorów jednoargumentowych ..................................................... 437 Programowanie jednoargumentowego operatora inkrementacji i dekrementacji ...................................................................................................... 437 Lekcja 13. Typy operatorów i przeciÈĝanie operatorów 12 C++ dla kaĝdego Programowanie operatora dereferencji * i operatora wyboru elementu skÏadowego - ...............................................441 Programowanie operatorów konwersji ........................................................444 Operatory dwuargumentowe ...................................................................................446 Typy operatorów dwuargumentowych .........................................................446 Programowanie operatorów dodawania (a+b) i odejmowania (a-b) .......447 Programowanie operatorów dodawania/przypisania i odejmowania/przypisania .............................................................................450 Przeci¦Ăanie operatorów porównywania ....................................................452 Przeci¦Ăanie operatorów , , = i = ............................................................456 Operatory indeksowania ......................................................................................459 Funkcja operator() .........................................................................................................462 Operatory, których nie moĂna ponownie zdefiniowa© ..................................463 Podsumowanie ................................................................................................................464 Pytania i odpowiedzi .....................................................................................................464 Warsztaty ...........................................................................................................................465 Quiz ................................................................................................................................465 *wiczenia ....................................................................................................................465 467 Co to jest rzutowanie? ..................................................................................................467 Kiedy zachodzi potrzeba rzutowania? ..................................................................467 Dlaczego rzutowanie w stylu C nie jest popularne wäród niektórych programistów C++? ..............................................................468 Operatory rzutowania C++ .........................................................................................469 UĂycie static_cast .....................................................................................................470 UĂycie dynamic_cast i identyfikacja typu w czasie dziaÏania ...............471 UĂycie reinterpret_cast .........................................................................................474 UĂycie const_cast .....................................................................................................475 Problemy z operatorami rzutowania C++ ..............................................................476 Podsumowanie ................................................................................................................477 Pytania i odpowiedzi .....................................................................................................477 Warsztaty ...........................................................................................................................478 Quiz ................................................................................................................................478 481 Preprocesor i kompilator ............................................................................................481 Dyrektywa #define preprocesora ...........................................................................482 Lekcja 15. Wprowadzenie do makr i wzorców Lekcja 14. Operatory rzutowania Spis treĂci 13 Funkcje makro ................................................................................................................. 482 Po co te wszystkie nawiasy? .............................................................................. 484 W jaki sposób makra i sÏabe bezpieczeÑstwo typów id¦ r¸ka w r¸k¸? .................................................................................................... 485 Makra a funkcje i wzorce ..................................................................................... 486 Funkcje inline ........................................................................................................... 486 Wprowadzenie do wzorców ..................................................................................... 488 SkÏadnia deklaracji wzorca ................................................................................. 489 RóĂne rodzaje deklaracji wzorca ..................................................................... 490 Klasy wzorca ............................................................................................................. 490 Ustanawianie i specjalizacja wzorca .............................................................. 491 Wzorce i bezpieczeÑstwo typów ...................................................................... 492 Deklarowanie wzorców z wieloma parametrami .................................... 492 Deklarowanie wzorców z parametrami domyälnymi ............................ 493 PrzykÏad wzorca ...................................................................................................... 493 UĂycie wzorców w praktycznym programowaniu C++ ......................... 495 Podsumowanie ................................................................................................................ 496 Pytania i odpowiedzi .................................................................................................... 496 Warsztaty .......................................................................................................................... 498 Quiz ............................................................................................................................... 498 *wiczenia .................................................................................................................... 498 CzÚĂÊ III Poznajemy standardowÈ bibliotekÚ wzorców (STL) Lekcja 16. Wprowadzenie do standardowej biblioteki wzorców 501 Kontenery STL ................................................................................................................. 501 Kontenery sekwencyjne ....................................................................................... 501 Kontenery asocjacyjne .......................................................................................... 502 Wybór odpowiedniego kontenera ................................................................... 503 Iteratory STL .................................................................................................................... 503 Algorytmy STL ................................................................................................................. 506 OddziaÏywania mi¸dzy kontenerami i algorytmami za pomoc¦ iteratorów ............................................................................................... 507 Podsumowanie ................................................................................................................ 509 Pytania i odpowiedzi .................................................................................................... 510 Warsztaty .......................................................................................................................... 510 Quiz ............................................................................................................................... 511 14 C++ dla kaĝdego Lekcja 17. Klasa string w STL 513 Lekcja 18. Dynamiczne klasy tablic w STL Potrzeba powstania klasy sÏuæcej do manipulowania ci¦gami tekstowymi .....................................................................................................................513 Praca z klas¦ STL string ...............................................................................................515 Ustanawianie obiektu STL string i tworzenie kopii .................................515 Uzyskanie dost¸pu do obiektu string i jego zawartoäci .........................518 O¦czenie ci¦gów tekstowych ..............................................................................520 Wyszukiwanie znaku b¦dĀ podci¦gu tekstowego w obiekcie string .....521 Skracanie obiektu STL string ..............................................................................523 Odwracanie zawartoäci ci¦gu tekstowego ...................................................525 Konwersja wielkoäci znaków obiektu string .................................................526 Bazuj¦ca na wzorcach implementacja klasy STL string ................................528 Podsumowanie ................................................................................................................528 Pytania i odpowiedzi .....................................................................................................529 Warsztaty ...........................................................................................................................529 Quiz ................................................................................................................................529 *wiczenia ....................................................................................................................530 531 Charakterystyka klasy std::vector ..........................................................................531 Typowe operacje klasy vector ..................................................................................532 Ustanawianie klasy vector ...................................................................................532 Wstawianie elementów do obiektu vector ..................................................533 Uzyskanie dost¸pu do elementów obiektu vector ....................................538 Usuwanie elementów z obiektu vector ..........................................................541 Zrozumienie funkcji size() i capacity() .................................................................542 Klasa STL deque ..............................................................................................................545 Podsumowanie ................................................................................................................547 Pytania i odpowiedzi .....................................................................................................547 Warsztaty ...........................................................................................................................548 Quiz ................................................................................................................................549 *wiczenia ....................................................................................................................549 551 Charakterystyka klasy std::list .................................................................................551 Podstawowe operacje klasy list ...............................................................................552 Ustanawianie obiektu std::list ...........................................................................552 Wstawianie elementów na pocz¦tku obiektu list .....................................552 Lekcja 19. Klasa STL list Spis treĂci 15 Lekcja 20. Klasy STL set i multiset Wstawianie elementów na koÑcu obiektu list ........................................... 554 Wstawianie elementów w ärodku obiektu list .......................................... 555 Usuwanie elementów w obiekcie list ............................................................. 558 Odwrócenie i sortowanie elementów w obiekcie list .................................... 560 Odwracanie elementów ....................................................................................... 561 Sortowanie elementów ........................................................................................ 562 Podsumowanie ................................................................................................................ 573 Pytania i odpowiedzi .................................................................................................... 573 Warsztaty .......................................................................................................................... 574 Quiz ............................................................................................................................... 574 *wiczenia .................................................................................................................... 574 575 Wprowadzenie ................................................................................................................ 575 Podstawowe operacje klas STL set i multiset ................................................... 576 Ustanawianie obiektu std::set ........................................................................... 576 Wstawianie elementów do obiektu set lub multiset ............................... 577 Wyszukiwanie elementów w obiekcie STL set lub multiset ................ 579 Usuwanie elementów z obiektu STL set lub multiset ............................. 581 Wady i zalety uĂywania obiektów STL set i multiset ..................................... 592 Podsumowanie ................................................................................................................ 592 Pytania i odpowiedzi .................................................................................................... 592 Warsztaty .......................................................................................................................... 593 Quiz ............................................................................................................................... 593 *wiczenia .................................................................................................................... 594 595 Krótkie wprowadzenie ................................................................................................ 595 Podstawowe operacje klas STL map i multimap ............................................. 596 Ustanawianie obiektu std::map ........................................................................ 596 Wstawianie elementów do obiektu STL map lub multimap ................ 597 Wyszukiwanie elementów w obiekcie STL map lub multimap .......... 600 Usuwanie elementów z obiektu STL map lub multimap ....................... 602 Dostarczanie wÏasnego predykatu sortowania ................................................ 606 Podsumowanie ................................................................................................................ 610 Pytania i odpowiedzi .................................................................................................... 610 Warsztaty .......................................................................................................................... 611 Quiz ............................................................................................................................... 612 *wiczenia .................................................................................................................... 612 Lekcja 21. Klasy STL map i multimap 16 C++ dla kaĝdego CzÚĂÊ IV Jeszcze wiÚcej STL Lekcja 22. Zrozumienie obiektów funkcji Lekcja 23. Algorytmy STL 615 Koncepcja obiektów funkcji i predykatów .............................................................615 Typowe aplikacje obiektów funkcji ........................................................................616 Funkcje jednoargumentowe ...............................................................................616 Predykat jednoargumentowy ............................................................................621 Funkcje dwuargumentowe .................................................................................623 Predykat dwuargumentowy ...............................................................................626 Podsumowanie ................................................................................................................629 Pytania i odpowiedzi .....................................................................................................629 Warsztaty ...........................................................................................................................630 Quiz ................................................................................................................................630 *wiczenia ....................................................................................................................630 631 Co to s¦ algorytmy STL? ...............................................................................................631 Klasyfikacja algorytmów STL ....................................................................................631 Algorytmy niezmienne ..........................................................................................632 Algorytmy zmienne ................................................................................................633 UĂywanie algorytmów STL ........................................................................................636 Zliczanie i znajdowanie elementów ................................................................636 Wyszukiwanie elementu lub zakresu w kolekcji .......................................639 Inicjalizacja elementów w kontenerze wraz z okreälonymi wartoäciami ..............................................................................642 Przetwarzanie elementów w zakresie za pomoc¦ for_each .................645 Przeprowadzanie transformacji zakresu za pomoc¦ std::transform .................................................................................647 Operacje kopiowania i usuwania ......................................................................650 Zast¸powanie wartoäci oraz zast¸powanie elementu na podstawie danego warunku ......................................................................654 Sortowanie i przeszukiwanie posortowanej kolekcji oraz usuwanie duplikatów ..........................................................................................656 Partycjonowanie zakresu .....................................................................................659 Wstawianie elementów do posortowanej kolekcji ...................................661 Podsumowanie ................................................................................................................664 Pytania i odpowiedzi .....................................................................................................664 Spis treĂci 17 Lekcja 24. Kontenery adaptacyjne: stack i queue Warsztaty .......................................................................................................................... 665 Quiz ............................................................................................................................... 665 *wiczenia .................................................................................................................... 666 667 Cechy charakterystyczne zachowania stosów i kolejek ............................... 667 Stosy .............................................................................................................................. 667 Kolejki .......................................................................................................................... 668 UĂywanie klasy STL stack .......................................................................................... 668 Ustanawianie obiektu stack ............................................................................... 669 Funkcje skÏadowe klasy stack ........................................................................... 670 UĂywanie klasy STL queue ........................................................................................ 672 Ustanawianie obiektu queue ............................................................................. 673 Funkcje skÏadowe klasy queue ......................................................................... 674 UĂywanie klasy STL priority_queue ...................................................................... 676 Ustanawianie obiektu priority_queue ........................................................... 677 Funkcje skÏadowe klasy priority_queue ....................................................... 678 Podsumowanie ................................................................................................................ 682 Pytania i odpowiedzi .................................................................................................... 682 Warsztaty .......................................................................................................................... 682 Quiz ............................................................................................................................... 682 *wiczenia .................................................................................................................... 683 685 Klasa bitset ........................................................................................................................ 685 Ustanowienie klasy std::bitset .......................................................................... 685 UĂywanie klasy std::bitset i jej elementów skÏadowych .............................. 687 Operatory std::bitset ............................................................................................. 687 Metody skÏadowe klasy std::bitset .................................................................. 687 Klasa vector bool ........................................................................................................ 691 Ustanowienie klasy vector bool ................................................................... 691 UĂywanie klasy vector bool ........................................................................... 692 Podsumowanie ................................................................................................................ 693 Pytania i odpowiedzi .................................................................................................... 694 Warsztaty .......................................................................................................................... 694 Quiz ............................................................................................................................... 695 *wiczenia .................................................................................................................... 695 Lekcja 25. Praca z opcjami bitowymi za pomocÈ STL 18 C++ dla kaĝdego CzÚĂÊ V Zaawansowane koncepcje C++ Lekcja 26. Sprytne wskaěniki 699 Czym s¦ sprytne wskaĀniki? ......................................................................................699 Na czym polega problem zwi¦zany z uĂywaniem wskaĀników konwencjonalnych? ..................................................................700 W jaki sposób sprytne wskaĀniki mog¦ pomóc? .......................................701 W jaki sposób s¦ implementowane sprytne wskaĀniki? ..............................701 Typy sprytnych wskaĀników ....................................................................................703 Kopiowanie gϸbokie .............................................................................................704 Mechanizm kopiowania przy zapisie (COW) ..............................................706 Sprytne wskaĀniki zliczania odniesieÑ ..........................................................706 Sprytne wskaĀniki powi¦zane z licznikiem odniesieÑ ............................707 Kopiowanie destrukcyjne ....................................................................................708 UĂywanie klasy std::auto_ptr ....................................................................................710 Popularne biblioteki sprytnych wskaĀników ....................................................712 Podsumowanie ................................................................................................................713 Pytania i odpowiedzi .....................................................................................................713 Warsztaty ...........................................................................................................................714 Quiz ................................................................................................................................714 *wiczenia ....................................................................................................................715 717 Przegl¦d strumieni .........................................................................................................717 Hermetyzacja przepÏywu danych .....................................................................718 Buforowanie ..............................................................................................................719 Strumienie i bufory ........................................................................................................721 Standardowe obiekty wejäcia-wyjäcia ..................................................................722 Przekierowywanie standardowych strumieni ..................................................722 Wejäcie z uĂyciem cin ...................................................................................................723 Wejäciowe ci¦gi tekstowe ....................................................................................725 Problemy z ci¦gami tekstowymi .......................................................................725 Wartoä© zwracana przez cin ...............................................................................728 Inne funkcje skÏadowe w dyspozycji cin ..............................................................729 Wprowadzanie pojedynczych znaków ..........................................................729 Odczytywanie ci¦gów tekstowych z wejäcia standardowego .............732 UĂycie cin.ignore() ..................................................................................................735 Funkcje peek() oraz putback() ..........................................................................737 Lekcja 27. Strumienie Spis treĂci 19 Lekcja 28. Obsïuga wyjÈtków Wyjäcie poprzez cout ................................................................................................... 738 Zrzucanie zawartoäci bufora ............................................................................. 739 Funkcje obsÏuguj¦ce wyjäcie .............................................................................. 739 Manipulatory, znaczniki oraz instrukcje formatowa
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

C++ dla każdego. Wydanie II
Autor:
, ,

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: