Szczegóły ebooka

C++. Podróż po języku dla zaawansowanych. Wydanie II

C++. Podróż po języku dla zaawansowanych. Wydanie II

Bjarne Stroustrup

Ebook

Żadnego programisty nie trzeba przekonywać o zaletach C++. To język dojrzały, wszechstronny, pozwalający uzyskiwać maksymalną wydajność kodu. Do tego wciąż konsekwentnie rozwijany - współczesny C++ wygląda zupełnie inaczej niż dwadzieścia lat temu. Oznacza to, że profesjonalny programista, który chce w pełni wykorzystać zalety nowoczesnego C++, musi bardzo dobrze orientować się w nowościach przynoszonych przez kolejne specyfikacje języka. Warto również wiedzieć, jak zmieniają się dostępne narzędzia językowe i biblioteki, a także które paradygmaty programowania są przez nie wspierane i w jakim zakresie.

Ta książka jest idealnym wyborem dla programisty C lub C++, który chce lepiej zapoznać się z nowościami w języku C++. Jest to zwięzły i dokładny przewodnik po najważniejszych elementach języka i komponentach biblioteki standardowej z uwzględnieniem niedawno wprowadzonych udoskonaleń i udogodnień. Znalazły się tu również liczne przykłady i praktyczne wskazówki, które szczególnie istotne okażą się w kontekście paradygmatów programowania, takich jak programowanie generyczne i zorientowane obiektowo. Poza dość podstawowymi zagadnieniami omówiono tu tematykę semantyki przenoszenia, jednolitej inicjalizacji, wyrażeń lambda, kontenerów i współbieżności. Książka kończy się interesującym opisem projektu i ewolucji języka C++.

Najciekawsze zagadnienia:

  • podstawy działania kodu C++
  • operacje standardowe oraz operacje wejścia-wyjścia
  • szablony, w tym szablony funkcji i szablony zmienne
  • algorytmy w C++ i narzędzia pomocnicze
  • zadania, wątki, komunikacja między procesami
  • niektóre nowości planowane dla przyszłych implementacji C++

Na pewno znasz C++. Ale czy sprawnie się nim posługujesz?


Wstęp 7

1. Podstawy 11

  • 1.1. Wprowadzenie 11
  • 1.2. Programy 12
  • 1.3. Funkcje 14
  • 1.4. Typy, zmienne i arytmetyka 15
  • 1.5. Zakres i cykl istnienia 19
  • 1.6. Stałe 20
  • 1.7. Wskaźniki, tablice i referencje 21
  • 1.8. Testy 24
  • 1.9. Mapowanie sprzętowe 27
  • 1.10. Porady 29

2. Typy zdefiniowane przez użytkownika 31

  • 2.1. Wprowadzenie 31
  • 2.2. Struktury 32
  • 2.3. Klasy 33
  • 2.4. Unie 35
  • 2.5. Wyliczenia 36
  • 2.6. Porady 38

3. Moduły 39

  • 3.1. Wprowadzenie 39
  • 3.2. Kompilacja rozdzielna 40
  • 3.3. Moduły (C++20) 42
  • 3.4. Przestrzenie nazw 44
  • 3.5. Obsługa błędów 45
  • 3.6. Argumenty i wartości zwrotne funkcji 52
  • 3.7. Porady 56

4. Klasy 59

  • 4.1. Wprowadzenie 59
  • 4.2. Typy konkretne 60
  • 4.3. Typy abstrakcyjne 66
  • 4.4. Funkcje wirtualne 69
  • 4.5. Hierarchie klas 70
  • 4.6. Porady 76

5. Operacje podstawowe 79

  • 5.1. Wprowadzenie 79
  • 5.2. Kopiowanie i przenoszenie 82
  • 5.3. Zarządzanie zasobami 87
  • 5.4. Operacje standardowe 88
  • 5.5. Porady 92

6. Szablony 93

  • 6.1. Wprowadzenie 93
  • 6.2. Typy parametryzowane 94
  • 6.3. Operacje parametryzowane 98
  • 6.4. Mechanizmy szablonów 103
  • 6.5. Porady 106

7. Koncepcje i programowanie generyczne 107

  • 7.1. Wprowadzenie 107
  • 7.2. Koncepcje (C++20) 108
  • 7.3. Programowanie generyczne 113
  • 7.4. Szablony zmienne 116
  • 7.5. Model kompilacji szablonów 119
  • 7.6. Porady 120

8. Podstawowe informacje o bibliotece 121

  • 8.1. Wprowadzenie 121
  • 8.2. Komponenty biblioteki standardowej 122
  • 8.3. Nagłówki i przestrzeń nazw biblioteki standardowej 123
  • 8.4. Porady 124

9. Łańcuchy i wyrażenia regularne 127

  • 9.1. Wprowadzenie 127
  • 9.2. Łańcuchy 128
  • 9.3. Widoki łańcuchów 130
  • 9.4. Wyrażenia regularne 132
  • 9.5. Porady 139

10. Wejście i wyjście 141

  • 10.1. Wprowadzenie 141
  • 10.2. Wyjście 142
  • 10.3. Wejście 143
  • 10.4. Stan wejścia i wyjścia 145
  • 10.5. Wejście i wyjście typów zdefiniowanych przez użytkownika 146
  • 10.6. Formatowanie 147
  • 10.7. Strumienie plikowe 148
  • 10.8. Strumienie łańcuchowe 149
  • 10.9. Wejście i wyjście w stylu języka C 150
  • 10.10. System plików 150
  • 10.11. Porady 154

11. Kontenery 157

  • 11.1. Wprowadzenie 157
  • 11.2. Typ vector 158
  • 11.3. Listy 162
  • 11.4. Słowniki 164
  • 11.5. Słowniki nieuporządkowane 165
  • 11.6. Przegląd kontenerów 167
  • 11.7. Porady 169

12. Algorytmy 171

  • 12.1. Wprowadzenie 171
  • 12.2. Zastosowania iteratorów 173
  • 12.3. Typy iteratorów 175
  • 12.4. Iteratory strumieni 176
  • 12.5. Predykaty 178
  • 12.6. Przegląd algorytmów 178
  • 12.7. Koncepcje (C++20) 179
  • 12.8. Algorytmy kontenerów 183
  • 12.9. Algorytmy równoległe 184
  • 12.10. Porady 185

13. Narzędzia pomocnicze 187

  • 13.1. Wprowadzenie 187
  • 13.2. Zarządzanie zasobami 188
  • 13.3. Sprawdzanie zakresu - gsl::span 193
  • 13.4. Kontenery specjalne 194
  • 13.5. Alternatywy 199
  • 13.6. Alokatory 203
  • 13.7. Czas 204
  • 13.8. Adaptacja funkcji 205
  • 13.9. Funkcje typów 206
  • 13.10. Porady 210

14. Liczby 213

  • 14.1. Wprowadzenie 213
  • 14.2. Funkcje matematyczne 214
  • 14.3. Algorytmy numeryczne 215
  • 14.4. Liczby zespolone 216
  • 14.5. Liczby losowe 217
  • 14.6. Arytmetyka wektorowa 219
  • 14.7. Granice numeryczne 219
  • 14.8. Porady 220

15. Współbieżność 221

  • 15.1. Wprowadzenie 221
  • 15.2. Zadania i wątki 222
  • 15.3. Przekazywanie argumentów 223
  • 15.4. Zwracanie wyników 224
  • 15.5. Wspólne używanie danych 225
  • 15.6. Oczekiwanie na zdarzenia 227
  • 15.7. Komunikacja między zadaniami 228
  • 15.8. Porady 232

16. Historia i zgodność 235

  • 16.1. Historia 235
  • 16.2. Ewolucja funkcjonalności C++ 244
  • 16.3. Zgodność C i C++ 248
  • 16.4. Bibliografia 252
  • 16.5. Porady 255

Indeks 257

Skorowidz 259

  • Tytuł: C++. Podróż po języku dla zaawansowanych. Wydanie II
  • Autor: Bjarne Stroustrup
  • Tytuł oryginału: A Tour of C++ (2nd Edition)
  • Tłumaczenie: Łukasz Piwko
  • ISBN: 978-83-283-5425-8, 9788328354258
  • Data wydania: 2019-05-28
  • Format: Ebook
  • Identyfikator pozycji: cppoz2
  • Wydawca: Helion