Язык С++. Школа программирования. 6-е издание
Товар
- 0 раз купили
- 4.95 оценка
- 2 осталось
- 452 отзыва
Доставка
Характеристики
Описание
Stron: 1200
Format: 16,5 x 23,4 cm
Rok wydania: 2012
Oprawa: twarda
Język C++. Szkoła programowania. Wydanie VI
Stephen Prata
Najlepsze źródło informacji o C++!
Język C++. Szkoła programowania to starannie sprawdzony, sumiennie przygotowany i kompletny przewodnik po programowaniu w C++, przeznaczony dla programistów. Ten klasyczny już materiał pomocniczy dla wykładowców uczy zasad programowania, począwszy od kodu strukturalnego i projektowania wedle metody dekompozycji i analizy, przez klasy, dziedziczenie, szablony i wyjątki, po wyrażenia lambda, inteligentne wskaźniki i semantykę przeniesienia. Stephen Prata jako autor i wykładowca proponuje przemyślane, przejrzyste i wnikliwe wprowadzenie do języka C++. Wraz z mechanizmami samego języka omawia fundamentalne pojęcia i techniki programowania.
Szóste wydanie książki zostało uaktualnione i rozszerzone o omówienie elementów wprowadzonych do języka w nowym standardzie C++11. Książka przyda się nie tylko studentom klas informatycznych, ale również programistom biegłym w innych językach programowania, którzy chcieliby poznać język C++ lub pogłębić swoją wiedzę dotyczącą niuansów stosowania tego języka.
Dzięki tej książce:
- poznasz nowe elementy języka, wprowadzone w standardzie C++ 11
- zaliczysz kurs programowania w języku C++
- błyskawicznie znajdziesz informacje potrzebne w codziennej pracy
- opanujesz język C++
Kompletny podręcznik do nauki C++!
Stephen Prata uczył astronomii, fizyki i informatyki w College of Marin w Kenterfield (Kalifornia). Dyplom magisterski obronił w Kalifornijskim Instytucie Technologicznym, a doktorat na Uniwersytecie Kalifornijskim w Berkeley. Jest autorem i współautorem kilkunastu książek, w tym poprzednich wydań Języka C++. Szkoły programowania i Języka C. Szkoły programowania, nagrodzonych w 1990 roku wyróżnieniem Best How-to Computer Book Award stowarzyszenia Computer Press Association.
Spis treści
Podziękowania (19)
Wstęp (21)
Rozdział 1. Zaczynamy (31)
- Nauka C++ - co nas czeka? (31)
- Pochodzenie języka C++ - krótka historia (32)
Język C (32)
Filozofia programowania w C (33)
Zmiana w C++ - programowanie obiektowe (34)
C++ i programowanie uogólnione (35)
Pochodzenie C++ (36)
- Przenośność i standardy (37)
Rozwój języka w liczbach (38)
Standardy C++ w niniejszej książce (39)
- Mechanika tworzenia programu (39)
Pisanie kodu źródłowego (40)
Kompilacja i konsolidacja (41)
- Podsumowanie (45)
Rozdział 2. Pierwszy program w C++ (47)
- C++ - początek (47)
Cechy funkcji main() (49)
Komentarze w C++ (51)
Preprocesor i plik iostream (52)
Nazwy plików nagłówkowych (53)
Przestrzenie nazw (53)
Wypisywanie danych - cout (55)
Formatowanie kodu źródłowego C++ (57)
- Instrukcje C++ (59)
Instrukcje deklaracji i zmienne (60)
Instrukcja przypisania (61)
Nowa sztuczka z cout (62)
- Inne instrukcje C++ (62)
Użycie obiektu cin (63)
Złączanie za pomocą cout (64)
cin i cout - klasy po raz pierwszy (64)
- Funkcje (66)
Użycie funkcji zwracającej wartość (66)
Odmiany funkcji (69)
Funkcje definiowane przez użytkownika (70)
Funkcje użytkownika zwracające wartość (73)
Dyrektywa using w programach z wieloma funkcjami (74)
- Podsumowanie (76)
- Pytania sprawdzające (77)
- Ćwiczenia programistyczne (77)
Rozdział 3. Dane (79)
- Zmienne proste (80)
Nazwy zmiennych (80)
Typy całkowitoliczbowe (81)
Typy short, int, long i long long (82)
Typy bez znaku (87)
Dobór właściwego typu (89)
Literały całkowitoliczbowe (90)
Jak C++ ustala typ stałej? (91)
Typ char - znaki i małe liczby całkowite (92)
Typ danych bool (100)
- Kwalifikator const (100)
- Liczby zmiennoprzecinkowe (101)
Zapis liczb zmiennoprzecinkowych (102)
Zmiennoprzecinkowe typy danych (103)
Stałe zmiennoprzecinkowe (105)
Zalety i wady liczb zmiennoprzecinkowych (105)
- Operatory arytmetyczne C++ (106)
Kolejność działań - priorytety operatorów i łączność (107)
Odmiany dzielenia (108)
Operator modulo (110)
Konwersje typów (110)
Automatyczne deklaracje typów w C++11 (116)
- Podsumowanie (117)
- Pytania sprawdzające (117)
- Ćwiczenia programistyczne (118)
Rozdział 4. Typy złożone (121)
- Tablice w skrócie (122)
Uwagi o programie (124)
Inicjalizacja tablic (124)
Inicjalizacja tablic w C++11 (125)
- Łańcuchy (126)
Łączenie literałów napisowych (127)
Łańcuchy w tablicy (128)
Problemy z wprowadzaniem łańcuchów znakowych (129)
Wczytywanie łańcuchów znakowych wierszami (130)
Mieszanie w danych wejściowych łańcuchów i liczb (134)
- Klasa string - wprowadzenie (135)
Inicjalizacja łańcuchów znakowych w C++11 (136)
Przypisanie, konkatenacja i dołączanie (136)
Inne operacje klasy string (138)
Klasa string a wejście i wyjście (139)
Inne odmiany literałów napisowych (141)
- Struktury (142)
Użycie struktury w programie (143)
Inicjalizacja struktur w C++11 (145)
Czy w strukturze można użyć pola typu string? (146)
Inne cechy struktur (146)
Tablice struktur (148)
Pola bitowe (149)
- Unie (149)
- Typy wyliczeniowe (151)
Ustawianie wartości enumeratorów (153)
Zakresy wartości w typach wyliczeniowych (153)
- Wskaźniki i różne drobiazgi (154)
Deklarowanie i inicjalizacja wskaźników (156)
Niebezpieczeństwa związane ze wskaźnikami (158)
Wskaźniki i liczby (159)
Użycie operatora new do alokowania pamięci (159)
Zwalnianie pamięci za pomocą delete (161)
Użycie new do tworzenia tablic dynamicznych (162)
- Wskaźniki, tablice i arytmetyka wskaźników (165)
Podsumowanie informacji o wskaźnikach (168)
Wskaźniki i łańcuchy (170)
Użycie new do tworzenia struktur dynamicznych (174)
Alokacja pamięci: automatyczna, statyczna i dynamiczna (177)
- Kombinacje typów (179)
- Tablice inaczej (181)
Klasa szablonowa vector (181)
Klasa szablonowa array (C++11) (182)
Porównanie tablic z obiektami vector i array (183)
- Podsumowanie (184)
- Pytania sprawdzające (185)
- Ćwiczenia programistyczne (186)
Rozdział 5. Pętle i wyrażenia relacyjne (189)
- Pętle for (190)
Elementy pętli for (191)
Wracamy do pętli for (196)
Zmiana wielkości kroku (198)
Pętla for i łańcuchy znakowe (198)
Operatory inkrementacji (++) i dekrementacji (--) (199)
Efekty uboczne i punkty odniesienia (200)
Formy przedrostkowe a formy przyrostkowe (201)
Operatory inkrementacji i dekrementacji a wskaźniki (202)
Złożone operatory przypisania (203)
Instrukcje złożone, czyli bloki (203)
Przecinek jako operator (i pewne sztuczki składniowe) (205)
Wyrażenia relacyjne (208)
Przypisania, porównania i pomyłki (208)
Porównywanie łańcuchów w stylu C (210)
Porównywanie obiektów klasy string (213)
- Pętla while (213)
Uwagi o programie (215)
Pętla for a pętla while (216)
Chwileczkę - tworzymy pętlę opóźnienia (217)
- Pętla do while (219)
- Zakresowe pętle for (C++11) (221)
- Pętle i wprowadzanie danych tekstowych (221)
Najprostsza wersja cin (222)
cin.get(char) na odsiecz (223)
Która wersja cin.get() jest lepsza? (224)
Koniec pliku (224)
Jeszcze inna wersja cin.get() (227)
- Pętle zagnieżdżone i dwuwymiarowe tablice (230)
Inicjalizacja tablic dwuwymiarowych (232)
Stosowanie tablic dwuwymiarowych (232)
- Podsumowanie (234)
- Pytania sprawdzające (234)
- Ćwiczenia programistyczne (235)
Rozdział 6. Instrukcje warunkowe i operatory logiczne (237)
- Instrukcja if (237)
Instrukcja if else (239)
Formatowanie instrukcji if else (241)
Konstrukcja if else if else (241)
- Wyrażenia logiczne (243)
Logiczny operator alternatywy - || (243)
Logiczny operator koniunkcji - && (245)
Ustalanie zakresu za pomocą operatora && (247)
Operator negacji logicznej - ! (248)
O operatorach logicznych (250)
Zapis alternatywny (251)
- Biblioteka cctype (251)
- Operator ?: (253)
- Instrukcja switch (255)
Użycie enumeratorów jako etykiet (258)
switch versus if else (259)
- Instrukcje break i continue (259)
Uwagi o programie (261)
- Pętle wczytywania liczb (262)
Uwagi o programie (264)
- Proste wejście-wyjście z pliku (265)
Tekstowe wejście-wyjście i pliki tekstowe (265)
Zapis do pliku tekstowego (267)
Odczyt danych z pliku tekstowego (270)
- Podsumowanie (274)
- Pytania sprawdzające (275)
- Ćwiczenia programistyczne (276)
Rozdział 7. Funkcje - składniki programów w C++ (279)
- Funkcje w skrócie (280)
Definiowanie funkcji (281)
Prototypowanie i wywoływanie funkcji (283)
- Parametry funkcji i przekazywanie przez wartość (286)
Wiele parametrów (287)
Jeszcze jedna funkcja dwuargumentowa (289)
- Funkcje i tablice (291)
Jak wskaźniki umożliwiają tworzenie funkcji przetwarzających tablice? (292)
Skutki użycia tablic jako parametrów (293)
Dodatkowe przykłady funkcji i tablic (295)
Funkcje korzystające z zakresów tablic (301)
Wskaźniki i modyfikator const (302)
- Funkcje i tablice dwuwymiarowe (306)
- Funkcje i łańcuchy w stylu C (307)
Funkcje z łańcuchami w stylu C jako parametrami (307)
Funkcje zwracające łańcuchy w formacie C (309)
- Funkcje i struktury (310)
Przekazywanie i zwracanie struktur (311)
Inny przykład użycia funkcji i struktur (312)
Przekazywanie adresu struktury (317)
- Funkcje i obiekty klasy string (318)
Funkcje i obiekty typu array (320)
Uwagi o programie (321)
- Rekurencja (322)
Rekurencja w pojedynczym wywołaniu (322)
Rekurencja w wielu wywołaniach (324)
- Wskaźniki na funkcje (325)
Wskaźniki na funkcje - podstawy (325)
Przykład użycia wskaźników na funkcje (327)
Wariacje na temat wskaźników funkcji (329)
Uproszczenie poprzez typedef (333)
- Podsumowanie (333)
- Pytania sprawdzające (334)
- Ćwiczenia programistyczne (336)
Rozdział 8. Funkcje - zagadnienia zaawansowane (339)
- Funkcje inline (339)
- Zmienne referencyjne (342)
Tworzenie zmiennej referencyjnej (342)
Referencje jako parametry funkcji (345)
Właściwości referencji (348)
Użycie referencji do struktur (352)
Użycie referencji z obiektami (358)
Obiekty po raz wtóry - obiekty, dziedziczenie i referencje (361)
Kiedy korzystać z referencji jako parametrów? (364)
- Parametry domyślne (365)
Uwagi o programie (366)
- Przeciążanie funkcji (367)
Przykład przeciążania funkcji (370)
Kiedy korzystać z przeciążania funkcji? (372)
- Szablony funkcji (372)
Przeciążone szablony (375)
Ograniczenia szablonów (377)
Specjalizacje jawne (377)
Konkretyzacje i specjalizacje (380)
Którą wersję funkcji wybierze kompilator? (382)
Ewolucja szablonów funkcji (388)
- Podsumowanie (392)
- Pytania sprawdzające (392)
- Ćwiczenia programistyczne (393)
Rozdział 9. Model pamięci i przestrzenie nazw (397)
- Kompilacja rozłączna (397)
- Czas życia, zasięg i łączenie (403)
Zasięg i łączenie (404)
Przydział automatyczny (404)
Zmienne statyczne (409)
Przydział statyczny, łączenie zewnętrzne (411)
Specyfikatory i kwalifikatory (419)
Łączenie a funkcje (421)
Łączenie językowe (422)
Kategorie przydziału a przydział dynamiczny (423)
- Przestrzenie nazw (429)
Tradycyjne przestrzenie nazw języka C++ (429)
Nowe mechanizmy przestrzeni nazw (431)
Przestrzenie nazw - przykład (438)
Przyszłość przestrzeni nazw (441)
- Podsumowanie (442)
- Pytania sprawdzające (442)
- Ćwiczenia programistyczne (445)
Rozdział 10. Obiekty i klasy (447)
- Programowanie proceduralne a programowanie obiektowe (448)
- Klasy a abstrakcje (449)
Czym jest typ? (449)
Klasy w języku C++ (450)
Implementowanie metod klas (455)
Stosowanie klas (459)
Zmiany implementacji (461)
Podsumowanie poznanych wiadomości (462)
- Konstruktory i destruktory (463)
Deklarowanie i definiowanie konstruktorów (464)
Stosowanie konstruktorów (465)
Konstruktory domyślne (466)
Destruktory (467)
Ulepszenia klasy Stock (468)
Konstruktory i destruktory - podsumowanie (475)
- Tożsamość obiektu - wskaźnik this (476)
- Tablice obiektów (482)
- Zasięg klasy (485)
Stałe zasięgu klasy (486)
Wyliczenia z własnym zasięgiem (C++11) (487)
- Abstrakcyjne typy danych (488)
- Podsumowanie (492)
- Pytania sprawdzające (493)
- Ćwiczenia programistyczne (493)
Rozdział 11. Stosowanie klas (497)
- Przeciążanie operatorów (498)
- Raz, dwa, trzy - próba przeciążenia operatora (499)
Dodatkowy operator dodawania (502)
Ograniczenia przeciążania operatorów (505)
Jeszcze o przeciążaniu operatorów (506)
- Przyjaciele najważniejsi (509)
Deklarowanie przyjaźni (510)
Typowa przyjaźń - przeciążanie operatora << (512)
- Przeciążanie operatorów - metody kontra funkcje nieskładowe (518)
- Przeciążania ciąg dalszy - klasa Vector (519)
Składowa kodująca stan obiektu (526)
Przeciążanie operatorów arytmetycznych dla klasy Vector (528)
Nota implementacyjna (530)
Wektorowe błądzenie losowe (530)
- Automatyczne konwersje i rzutowanie typów klas (534)
O programie (539)
Funkcje konwersji (539)
Konwersja a zaprzyjaźnienie (544)
- Podsumowanie (547)
- Pytania sprawdzające (549)
- Ćwiczenia programistyczne (549)
Rozdział 12. Klasy a dynamiczny przydział pamięci (553)
- Klasy a pamięć dynamiczna (554)
Powtórka z pamięci dynamicznej i statyczne składowe klas (554)
Specjalne metody klasy (562)
W czym tkwi problem z konstruktorem kopiującym w Stringbad? (565)
Kolejne słabości Stringbad: operatory przypisania (568)
- Nowa, ulepszona klasa - String (571)
Nowa wersja konstruktora domyślnego (572)
Porównywanie ciągów (573)
Indeksowanie ciągu (574)
Statyczne metody klasy (575)
Dalsze przeciążanie operatora przypisania (576)
- O czym należy pamiętać, stosując new w konstruktorach? (581)
Zalecenia i przestrogi (582)
Kopiowanie obiektów składowa po składowej (583)
- Słów parę o zwracaniu obiektów (584)
Zwracanie niemodyfikowalnej (const) referencji obiektu (584)
Zwracanie modyfikowalnej (bez const) referencji do obiektu (585)
Zwracanie obiektu przez wartość (585)
Zwracanie przez wartość obiektu niemodyfikowalnego (const) (586)
- Wskaźniki obiektów (587)
Jeszcze o new i delete (589)
Wskaźniki obiektów - podsumowanie (590)
Jeszcze o miejscowej wersji new (592)
- Powtórka z poznanych technik (596)
Przeciążanie operatora << (596)
Funkcje konwersji (597)
Klasy wykorzystujące new w konstruktorach (597)
- Symulacja kolejki (598)
Klasa kolejki (598)
Klasa klienta (609)
Symulacja bankomatu (612)
- Podsumowanie (616)
- Pytania sprawdzające (617)
- Ćwiczenia programistyczne (619)
Rozdział 13. Klasy i dziedziczenie (623)
- Prosta klasa bazowa (624)
Dziedziczenie (626)
Konstruktory - zagadnienia związane z poziomem dostępu (628)
Korzystanie z klasy pochodnej (631)
Relacje między klasą pochodną a bazową (633)
- Dziedziczenie - relacja jest-czymś (635)
- Polimorficzne dziedziczenie publiczne (636)
Tworzenie klas Brass oraz BrassPlus (637)
- Wiązanie statyczne i dynamiczne (648)
Zgodność typów wskaźnikowych i referencyjnych (648)
Metody wirtualne i wiązanie dynamiczne (650)
Co trzeba wiedzieć o metodach wirtualnych? (653)
- Kontrola dostępu - poziom chroniony (656)
- Abstrakcyjne klasy bazowe (657)
Stosowanie abstrakcyjnych klas bazowych (659)
Filozofia abstrakcyjnych klas bazowych (665)
- Dziedziczenie i dynamiczny przydział pamięci (665)
Przypadek pierwszy - klasa pochodna bez dynamicznego przydziału pamięci (665)
Przypadek drugi - klasa pochodna z dynamicznym przydziałem pamięci (666)
Przykład dziedziczenia z wykorzystaniem dynamicznego przydziału pamięci oraz funkcji zaprzyjaźnionych (668)
- Projektowanie klas - przegląd zagadnień (673)
Metody automatycznie generowane przez kompilator (673)
Inne metody (675)
Dziedziczenie publiczne (678)
Metody klasy - podsumowanie (682)
- Podsumowanie (683)
- Pytania sprawdzające (683)
- Ćwiczenia programistyczne (684)
Rozdział 14. Wielokrotne użycie kodu w C++ (687)
- Klasy ze składowymi w postaci obiektów (688)
Krótka charakterystyka klasy valarray (688)
Projekt klasy Student (689)
Przykładowa klasa Student (691)
- Dziedziczenie prywatne (697)
Nowa wersja klasy Student (697)
- Dziedziczenie wielokrotne (706)
Podwójne egzemplarze klasy Worker (711)
Podwójne metody (714)
Przegląd zagadnień związanych z dziedziczeniem wielokrotnym (723)
- Szablony klas (724)
Definiowanie szablonu klasy (724)
Korzystanie z szablonu klasy (727)
Analiza szablonu klasy (729)
Szablon tablicy i argumenty pozatypowe szablonu (734)
Elastyczność szablonów (736)
Specjalizacja szablonu (739)
Szablony jako składowe (742)
Szablony jako parametry (744)
Szablony klas i zaprzyjaźnienie (746)
Szablonowe aliasy typów (C++11) (752)
- Podsumowanie (753)
- Pytania sprawdzające (755)
- Ćwiczenia programistyczne (757)
Rozdział 15. Zaprzyjaźnienie, wyjątki i nie tylko (763)
- Zaprzyjaźnienie (763)
Klasy zaprzyjaźnione (764)
Zaprzyjaźnione metody klas (768)
Inne relacje przyjaźni (771)
- Klasy zagnieżdżone (773)
Dostęp do klas zagnieżdżonych (774)
Zagnieżdżanie w szablonie (776)
- Wyjątki (779)
Wywoływanie funkcji abort() (779)
Zwracanie kodu błędu (780)
Mechanizm wyjątków (782)
Wyjątki w postaci obiektów (784)
Specyfikacje wyjątków a C++11 (788)
Rozwijanie stosu (789)
Inne właściwości wyjątków (793)
Klasa exception (796)
Wyjątki, klasy i dziedziczenie (799)
Problemy z wyjątkami (804)
Ostrożnie z wyjątkami (807)
- RTTI (808)
Po co nam RTTI? (808)
Jak działa RTTI? (809)
- Operatory rzutowania typu (816)
- Podsumowanie (820)
- Pytania sprawdzające (820)
- Ćwiczenia programistyczne (822)
Rozdział 16. Klasa string oraz biblioteka STL (823)
- Klasa string (823)
Tworzenie obiektu string (824)
Wprowadzanie danych do obiektów string (828)
Używanie obiektów string (830)
Co jeszcze oferuje klasa string? (835)
Warianty klasy string (837)
- Szablony klas inteligentnych wskaźników (837)
Stosowanie inteligentnych wskaźników (838)
Więcej o inteligentnych wskaźnikach (841)
Wyższość unique_ptr nad auto_ptr (844)
Wybór inteligentnego wskaźnika (845)
- Biblioteka STL (847)
Szablon klasy vector (847)
Metody klasy vector (849)
Inne możliwości klasy vector (853)
Zakresowe pętle for (C++11) (857)
- Programowanie uogólnione (858)
Do czego potrzebne są iteratory? (858)
Rodzaje iteratorów (862)
Hierarchia iteratorów (865)
Pojęcia, uściślenia i modele (866)
Rodzaje kontenerów (872)
Kontenery asocjacyjne (881)
Nieuporządkowane kontenery asocjacyjne (C++11) (887)
- Obiekty funkcyjne (funktory) (887)
Pojęcia związane z funktorami (888)
Funktory predefiniowane (891)
Funktory adaptowalne i adaptatory funkcji (892)
- Algorytmy (895)
Grupy algorytmów (895)
Ogólne właściwości algorytmów (896)
Biblioteka STL i klasa string (897)
Funkcje a metody kontenerów (898)
Używanie biblioteki STL (899)
- Inne biblioteki (903)
Klasy vector, valarray i array (903)
Szablon initializer_list (C++11) (908)
Stosowanie szablonu initializer_list (910)
Uwagi do programu (911)
- Podsumowanie (911)
- Pytania sprawdzające (913)
- Ćwiczenia programistyczne (914)
Rozdział 17. Obsługa wejścia, wyjścia oraz plików (917)
- Ogólna charakterystyka obsługi wejścia-wyjścia w języku C++ (918)
Strumienie i bufory (919)
Strumienie i bufory a plik iostream (921)
Przekierowanie (923)
- Realizacja operacji wyjścia z wykorzystaniem obiektu cout (924)
Przeciążony operator << (924)
Inne metody klasy ostream (927)
Opróżnianie bufora wyjściowego (930)
Formatowanie danych wyjściowych za pomocą obiektu cout (931)
- Realizacja operacji wejścia z wykorzystaniem obiektu cin (945)
Jak operator >> obiektu cin "widzi" dane wejściowe? (947)
Stany strumienia (949)
Inne metody klasy istream (953)
Pozostałe metody klasy istream (960)
- Wejście-wyjście plikowe (964)
Proste operacje wejścia-wyjścia plikowego (965)
Kontrola strumienia i metoda is_open() (968)
Otwieranie wielu plików (969)
Przetwarzanie argumentów wiersza polecenia (969)
Tryby otwarcia pliku (971)
Dostęp swobodny (981)
- Formatowanie wewnętrzne (988)
- Podsumowanie (991)
- Pytania sprawdzające (992)
- Ćwiczenia programistyczne (993)
Rozdział 18. Nowy standard C++ (997)
- Podsumowanie omawianych elementów C++11 (997)
Nowe typy (997)
Jednolita inicjalizacja (998)
Deklaracje (999)
nullptr (1001)
Inteligentne wskaźniki (1002)
Zmiany w specyfikacji wyjątków (1002)
Jawny zasięg elementów wyliczeń (1002)
Zmiany w klasach (1003)
Zmiany w szablonach i bibliotece STL (1004)
Referencje r-wartościowe (1006)
- Semantyka przeniesienia i referencje r-wartościowe (1007)
Potrzeba semantyki przeniesienia (1007)
Przykład przenoszenia (1008)
Konstruktor przenoszący - wnioski (1013)
Przypisania (1014)
Wymuszanie przeniesienia (1015)
- Nowe elementy klas (1018)
Specjalne metody klas (1018)
Metody domyślne i usunięte (1019)
Delegowanie konstruktorów (1021)
Dziedziczenie konstruktorów (1021)
Zarządzanie metodami wirtualnymi: ovverride i final (1023)
- Funkcje lambda (1024)
Wskaźniki do funkcji, funktory i lambdy (1024)
Po co nam lambdy? (1027)
- Adaptery (1030)
Adapter function a nieefektywność szablonów (1030)
Naprawa problemu (1032)
Dalsze możliwości (1034)
- Szablony o zmiennej liczbie parametrów (1035)
Pakiety parametrów szablonu i funkcji (1035)
Rozpakowywanie pakietów (1036)
Rekurencja w szablonach o zmiennej liczbie parametrów (1037)
- Pozostałe udogodnienia C++11 (1040)
Programowanie współbieżne (1040)
Uzupełnienia biblioteki (1040)
Programowanie niskopoziomowe (1041)
Inne (1042)
- Zmiany języka (1042)
Projekt Boost (1043)
TR1 (1043)
Korzystanie z bibliotek Boost (1043)
- Co dalej? (1044)
- Podsumowanie (1045)
- Pytania sprawdzające (1046)
- Ćwiczenia programistyczne (1049)
Dodatek A Systemy liczbowe (1051)
- Liczby dziesiętne (o podstawie 10) (1051)
- Liczby całkowite ósemkowe (o podstawie 8) (1051)
- Liczby szesnastkowe (1052)
- Liczby dwójkowe (o podstawie 2) (1052)
- Zapis dwójkowy a szesnastkowy (1053)
Dodatek B Słowa zastrzeżone języka C++ (1055)
- Słowa kluczowe języka C++ (1055)
- Leksemy alternatywne (1056)
- Nazwy zastrzeżone bibliotek języka C++ (1056)
- Identyfikatory o specjalnym znaczeniu (1057)
Dodatek C Zestaw znaków ASCII (1059)
Dodatek D Priorytety operatorów (1063)
Dodatek E Inne operatory (1067)
- Operatory bitowe (1067)
Operatory przesunięcia (1067)
Bitowe operatory logiczne (1069)
Alternatywne reprezentacje operatorów bitowych (1071)
Kilka typowych technik wykorzystujących operatory bitowe (1072)
- Operatory wyłuskania składowych (1073)
- alignof (C++11) (1077)
- noexcept (C++11) (1078)
Dodatek F Klasa szablonowa string (1079)
- Trzynaście typów i stała (1080)
- Informacje o danych, konstruktory i różne drobiazgi (1080)
Konstruktor domyślny (1083)
Konstruktory operujące na klasycznych łańcuchach C (1083)
Konstruktory operujące na fragmentach łańcuchów C (1084)
Konstruktory operujące na referencji l-wartościowej (1084)
Konstruktory operujące na referencji r-wartościowej (C++11) (1085)
Konstruktory wykorzystujące n kopii znaku (1086)
Konstruktory wykorzystujące zakres (1086)
Konstruktor operujący na liście inicjalizującej (C++11) (1086)
Metody zarządzające pamięcią (1087)
- Dostęp do łańcucha (1087)
- Proste przypisanie (1088)
- Przeszukiwanie łańcuchów (1089)
Rodzina funkcji find() (1089)
Rodzina funkcji rfind() (1089)
Rodzina funkcji find_first_of() (1090)
Rodzina funkcji find_last_of() (1090)
Rodzina funkcji find_first_not_of() (1091)
Rodzina funkcji find_last_not_of() (1091)
- Metody i funkcje porównania (1091)
- Modyfikatory łańcuchów (1093)
Metody dołączania i dodawania (1093)
Inne metody przypisania (1094)
Metody wstawiania (1094)
Metody usuwania (1095)
Metody zastępowania (1095)
Pozostałe metody modyfikujące: copy() oraz swap() (1096)
- Wejście i wyjście (1096)
Dodatek G Metody i funkcje z biblioteki STL (1099)
- STL a C++11 (1099)
Nowe kontenery (1099)
Zmiany w kontenerach C++98 (1100)
- Składowe wspólne dla wszystkich (lub większości) kontenerów (1101)
- Dodatkowe składowe dla kontenerów sekwencyjnych (1104)
- Dodatkowe operacje zbiorów i map (1107)
- Kontenery asocjacyjne nieporządkujące (C++11) (1109)
- Funkcje STL (1111)
Niemodyfikujące operacje sekwencyjne (1111)
Mutujące operacje sekwencyjne (1116)
Operacje sortowania i pokrewne (1125)
Operacje liczbowe (1139)
Dodatek H Wybrane pozycje książkowe i zasoby internetowe (1141)
- Wybrane pozycje książkowe (1141)
- Zasoby internetowe (1142)
Dodatek I Dostosowywanie do standardu ANSI/ISO C++ (1145)
- Unikanie nadużywania niektórych dyrektyw preprocesora (1145)
Do definiowania stałych lepiej używać modyfikatora const niż dyrektywy #define (1145)
Do definiowania niewielkich funkcji lepiej używać specyfikatora inline niż makrodefinicji #define (1147)
- Używanie prototypów funkcji (1148)
- Stosowanie rzutowania typów (1148)
- Poznawanie i wykorzystywanie mechanizmów języka C++ (1149)
- Używanie nowej organizacji plików nagłówkowych (1149)
- Korzystanie z przestrzeni nazw (1149)
- Używanie inteligentnych wskaźników (1150)
- Używanie klasy string (1151)
- Korzystanie z biblioteki STL (1151)
Dodatek J Odpowiedzi do pytań sprawdzających (1153)
Skorowidz (1179)
Гарантии
Гарантии
Мы работаем по договору оферты и предоставляем все необходимые документы.
Лёгкий возврат
Если товар не подошёл или не соответсвует описанию, мы поможем вернуть его.
Безопасная оплата
Банковской картой, электронными деньгами, наличными в офисе или на расчётный счёт.