C++. Podróż po języku dla zaawansowanych. Wydanie II - ebook
C++. Podróż po języku dla zaawansowanych. Wydanie II - 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?
Spis treści
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
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-5425-8 |
Rozmiar pliku: | 2,6 MB |