Logo
Logo
  • Wydawnictwo Grupy Medium
    • Seria e.
    • Seria i.
    • Seria b.
    • elektro.info
    • Rynek instalacyjny
    • Izolacje
    • Ekspert budowlany
    • Administrator
  • Instytut Techniki Budowlanej
    • Instrukcje, Wytyczne, Poradniki
    • Prace Naukowe ITB
    • Prace Naukowe w Open Access
    • Projektowanie według Eurokodów
    • Warunki Techniczne Wykonania i Odbioru Robót Budowlanych
  • DAFA Stowarzyszenie Wykonawców Dachów Płaskich i Fasad
    • Fotowoltaika
    • Dachy zielone
    • Lekka obudowa
    • Akustyka
    • Technika mocowań
    • Dachy płaskie
    • PPOŻ.
  • WACETOB
    • Kosztorysowanie
    • Budownictwo
    • Nieruchomości
  • Pakiety książek
  • Architektura
  • Automatyka, sterowanie
  • BHP
  • Biologia
  • Budownictwo
  • Chemia
  • Ekonomia, zarządzanie, biznes
  • Elektronika
  • Energetyka
  • Geodezja, kartografia
  • Górnictwo, wiertnictwo
  • Informatyka
  • Instalacje elektryczne i teletechniczne
  • Instalacje grzewcze
  • Instalacje sanitarne i gazowe
  • Kosztorysowanie
  • Matematyka, fizyka
  • Materiałoznawstwo
  • Mechanika
  • Nieruchomości
  • Normy
    • Normy w wersji elektronicznej
  • Ochrona Środowiska
  • PPOŻ.
  • Prawo budowlane
  • Programy
  • Spawalnictwo
  • Technika
  • Termodynamika
  • Transport
  • Wentylacja, klimatyzacja, chłodnictwo
  • Wnętrza i ogrody
  • Albumy
  • Czasopisma
  • Multimedia
  • Poradniki
  • Słowniki
    • Seria słownik podręczny
  • Mały technik. Książki dla dzieci
  • Kalendarze
  • Inne/pozostałe
  • Kontakt
  • Nowości
  • Dostawa
  • Newsletter
  • Poradnik projektanta elektryka
  • Ebooki
  • Miesięcznik IZOLACJE
  • 22 512 60 60
Twój koszyk jest pusty
Nie masz jeszcze konta?
Załóż konto
  1. Start
  2. Informatyka
  3. Język C++: mechanizmy, wzorce, biblioteki
  • Język C++: mechanizmy, wzorce, biblioteki

Język C++: mechanizmy, wzorce, biblioteki

  • Dodaj recenzję:
  • Kod: 5842
  • Producent: BTC
  • Kod producenta:
  • Autor: Robert Nowak, Andrzej Pająk
  • Rok wydania: 2010
  • ISBN: 978-83-60233-66-5
  • Liczba stron: 392
  • Oprawa: twarda
  • Format: B5
  • Dostępność: Jest

  • Cena netto: 94,29 zł 99,00 zł
  • szt.

Opis

W książce opisano sposoby poprawnego rozwiązywania typowych problemów, pojawiających się przy tworzeniu oprogramowania. Sposoby te, nazywane wzorcami projektowymi, rozszerzają zestaw akcesoriów dostarczanych przez język programowania, którymi możemy się posługiwać. Znajomość wzorców nie oznacza umiejętności programowania, ale dobry programista powinien mieć świadomość ich istnienia, aby unikać ponownego odkrywania znanych rozwiązań. Wiedza o przedstawionych technikach pozwala na lepszą komunikację w zespole, ponieważ można porozumiewać się na wyższym poziomie abstrakcji.

Książka jest przeznaczona dla osób, które miały wcześniej styczność z programowaniem i językiem C++. Zawiera ona opis mechanizmów dostarczanych przez ten język, ale bazują one na znajomości podstawowych pojęć. Rozdział pierwszy można traktować jako przypomnienie i uzupełnienie wiadomości o C++.

Spis treści

Wprowadzenie / 15

1. Mechanizmy języka C++ / 19
1.1. Struktura programu – jednostki translacji / 21
1.1.1. Składnia tekstu źródłowego / 22
1.1.2. Preprocesor / 25
1.1.3. Składniki jednostki translacji / 26
1.2. System typów / 28
1.2.1. void / 29
1.2.2. bool / 29
1.2.3. Typy liczbowe / 30
1.2.4. Wskazania i tablice / 31
1.2.5. Enumeracje / 33
1.2.6. Typ referencyjny / 34
1.3. Deklarowanie i definiowanie funkcji / 37
1.3.1. main() / 38
1.3.2. Przeciążanie funkcji i operatorów; specyfikacja wiązania / 38
1.3.3. Parametry funkcji / 40
1.3.4. Funkcje z parametrami dodatkowymi / 41
1.3.5. Funkcje z parametrami domniemanymi / 43
1.3.6. Funkcje rozwijane / 45
1.4. Zarządzanie nazwami / 47
1.4.1. Zasięgi / 47
1.4.2. Przestrzenie nazw / 49
1.4.3. Deklaracje i dyrektywy using / 51
1.4.4. Anonimowe przestrzenie nazw / 52
1.4.5. Wiązania nazw / 53
1.5. Zarządzanie obiektami / 54
1.5.1. Klasy pamięci / 55
1.5.2. Definiowanie i deklarowanie obiektów / 56
1.5.3. Zarządzanie pamięcią dynamiczną / 57
1.5.4. Obiekty ustalone i ulotne / 60
1.6. Zarządzanie operacjami / 62
1.6.1. Wyrażenia / 62
1.6.2. Priorytety operatorów i reguły przeciążania / 63
1.6.3. Instrukcje / 66
1.7. Klasy autonomiczne / 68
1.7.1. Definiowanie klas autonomicznych / 68
1.7.2. Składowe klasy / 69
1.7.3. Konstruktory i destruktory / 71
1.7.4. Projektowanie klas autonomicznych / 72
1.7.5. Funkcje składowe / 74
1.7.6. Przeciążanie operatorów / 75
1.7.7. this / 77
1.7.8. Funkcje i klasy zaprzyjaźnione / 78
1.7.9. Fraction / 81
1.7.10. Składowe statyczne / 83
1.7.11. Efekty uboczne konstruktorów i destruktorów / 86
1.7.12. Klasy ze zmienną strukturą wewnętrzną / 86
1.7.13. Klasy zagnieżdżone / 91
1.7.14. Listy inicjacyjne / 93
1.7.15. Klasy lokalne / 95
1.7.16. Wskazania na składowe klasy / 97
1.8. Dziedziczenie i polimorfizm / 98
1.8.1. Klasy pochodne: składnia i terminologia / 99
1.8.2. Klasy bazowe wirtualne / 100
1.8.3. Dostęp do składowych / 101
1.8.4. Dziedziczenie i funkcje przeciążone / 103
1.8.5. Dziedziczenie a zawieranie / 104
1.8.6. Wskazania i referencje / 105
1.8.7. Funkcje wirtualne i polimorfizm / 106
1.8.8. Destruktory wirtualne / 107
1.8.9. Funkcje wirtualne czyste i klasy abstrakcyjne / 108
1.8.10. Realizacja funkcji wirtualnych / 110
1.8.11. Identyfikacja typów w czasie wykonania / 111
1.9. Szablony / 113
1.9.1. Vect / 115
1.9.2. Schemat składniowy szablonów / 116
1.9.3. Matrix / 119
1.9.4. Reguły konkretyzacji szablonów / 121
1.9.5. Specjalizacje szablonów / 124
1.9.6. Szablony w szablonach / 126
1.9.7. Szablony i zaprzyjaźnienia / 127
1.9.8. Szablony i dziedziczenie / 128
1.9.9. Nazwy zależne / 130
1.10. Obsługa sytuacji wyjątkowych / 132
1.10.1. Wyjątki i sterowanie nielokalne / 133
1.10.2. Identyfikowanie wyjątków / 135
1.10.3. Mechanizm obsługi wyjątków w C++ / 136
1.10.4. Przekazywanie wyjątku do bloku obsługi / 138
1.10.5. Wybór bloku obsługi / 138
1.10.6. Ponowne zgłoszenie wyjątku / 139
1.10.7. Specyfikacja wyjątków / 140
1.10.8. Akcesoria standardowe / 141
1.10.9. Blok funkcyjny try / 142
1.11. Podsumowanie / 144

2. Techniki stosowane w programowaniu generycznym / 145
2.1. Klasy cech (trejty) / 145
2.1.1. Wybór wartości zależnych od danego typu / 146
2.1.2. Wybór algorytmu w czasie kompilacji / 147
2.1.3. Standardowe klasy cech / 150
2.1.4. Wybór typu w zależności od klasy cech / 152
2.1.5. Minimalizacja wielkości kodu wynikowego / 153
2.2. Klasy wytycznych / 154
2.2.1. Szablon jako parametr szablonu / 154
2.2.2. Tworzenie algorytmów z możliwością wyboru wariantu / 156
2.2.3. Różnice pomiędzy klasami cech a klasami wytycznych / 160
2.3. Metaprogramowanie / 160
2.3.1. Metaprogramy zwiększające czytelność kodu / 160
2.3.2. Obliczenia realizowane w czasie kompilacji / 161
2.3.3. Kolekcje typów / 163
2.3.4. Biblioteka boost::mpl / 165
2.4. Statyczne asercje i klasy wymagań / 167
2.4.1. Asercja czasu kompilacji / 168
2.4.2. Klasy wymagań / 169
2.5. Podsumowanie / 171
2.6. Ćwiczenia / 172

3. Uchwyty do obiektów / 175
3.1. Sprytne wskaźniki / 176
3.1.1. Wskaźnik boost::scoped ptr / 177
3.1.2. Wzorzec ukrywania implementacji (pimpl) / 179
3.1.3. Kopiowanie jako przekazywanie własności, std::auto ptr / 180
3.1.4. Zliczanie odniesień: boost::shared ptr i boost::weak ptr / 182
3.1.5. Wskaźniki narzucające interfejs, boost::intrusive ptr / 189
3.1.6. Porównanie / 191
3.2. Opóźnione (leniwe) tworzenie i kopiowanie obiektów / 191
3.2.1. Opóźnione (leniwe) tworzenie / 191
3.2.2. Wartości opcjonalne / 194
3.2.3. Opóźnione kopiowanie / 195
3.2.4. Usunięcie obiektu tymczasowego / 198
3.3. Iteratory / 200
3.3.1. Wzorzec iteratora / 200
3.3.2. Iteratory z biblioteki standardowej / 202
3.4. Funktory / 203
3.4.1. Obiekty typu boost::function / 203
3.4.2. Wiązanie argumentów / 205
3.5. Adaptery / 209
3.5.1. Adapter obiektów / 209
3.5.2. Adaptery klas / 210
3.5.3. Adaptery redukujące kod generowany przez szablony / 210
3.6. Podsumowanie / 212
3.7. Ćwiczenia / 212

4. Tworzenie obiektów / 217
4.1. Fabryka obiektów / 218
4.2. Prototyp / 222
4.3. Singleton / 223
4.4. Fabryka abstrakcyjna / 225
4.5. Zarządzanie stertą / 228
4.6. Mechanizmy refleksji / 231
4.7. Podsumowanie / 233
4.8. Ćwiczenia / 233

5. Współpraca pomiędzy obiektami / 235
5.1. Polimorfizm / 235
5.1.1. Interfejs bez funkcji wirtualnych / 236
5.1.2. Wybór metody w czasie kompilacji / 236
5.1.3. Własny mechanizm późnego wiązania / 238
5.2. Odwiedzający (wizytator) / 239
5.2.1. Odwrócenie zależności / 240
5.2.2. Wizytator cykliczny / 241
5.2.3. Wersja generyczna wizytatora / 243
5.2.4. Wizytator acykliczny / 244
5.3. Wielometody / 245
5.3.1. Wielometody wykorzystujące rzutowanie dynamiczne / 246
5.3.2. Wielometody wykorzystujące wizytator / 247
5.3.3. Późne wiązanie zależne od wielu parametrów / 251
5.4. Komenda / 252
5.4.1. Reprezentacja komend / 253
5.4.2. Ponawianie i wycofywanie akcji / 254
5.4.3. Komendy złożone / 255
5.4.4. Inne zastosowania komend / 256
5.5. Obserwator / 256
5.5.1. Opis wzorca / 257
5.5.2. boost::signals oraz boost::signals2 / 259
5.5.3. Inne zastosowania / 262
5.6. Stałość fizyczna i logiczna / 262
5.7. Podsumowanie / 266
5.8. Ćwiczenia / 266

6. Złożone struktury obiektów / 269
6.1. Kompozyt / 269
6.2. Dekorator / 271
6.3. Rekordy / 274
6.3.1. Struktury / 274
6.3.2. Warianty / 275
6.3.3. Wartości opcjonalne / 277
6.3.4. Obiekt dowolnego typu / 277
6.4. Kolekcje jednowymiarowe / 278
6.4.1. std::vector / 279
6.4.2. std::list / 280
6.4.3. std::deque / 281
6.4.4. std::set / 282
6.4.5. std::multiset / 283
6.4.6. std::map i std::multimap / 283
6.4.7. std::tr1::unordered set i inne kontenery haszujące / 284
6.4.8. std::basic string / 285
6.4.9. boost::array / 285
6.4.10. Porównanie kolekcji / 286
6.4.11. Operacje na kolekcjach / 287
6.4.12. Wykorzystanie nienazwanych obiektów funkcyjnych / 293
6.4.13. Standardowa biblioteka szablonów / 294
6.5. Tablice wielowymiarowe / 295
6.6. Grafy, boost::graph / 296
6.6.1. Reprezentacja grafów / 296
6.6.2. Algorytmy grafowe / 301
6.7. Podsumowanie / 304
6.8. Ćwiczenia 304

7. Dostęp do mechanizmów systemu operacyjnego / 309
7.1. Obsługa czasu i daty / 309
7.2. Wątki / 311
7.2.1. Współbieżność w C++ / 312
7.2.2. Zarządzanie wątkami / 313
7.2.3. Sekcje krytyczne / 315
7.2.4. Wzorzec projektowy monitora (pasywny obiekt) / 319
7.2.5. Wątki i implementacja potoków / 320
7.2.6. Blokada shared mutex / 322
7.2.7. Zmienne warunkowe / 323
7.2.8. Unikanie niepotrzebnych blokad / 324
7.2.9. Aktywny obiekt / 325
7.2.10. Wątki – uwagi końcowe / 329
7.3. Strumienie / 329
7.3.1. Zapis i odczyt strumienia z pominięciem konwersji / 331
7.3.2. Formatowanie za pomocą strumieni / 332
7.3.3. Strumienie plikowe i napisowe / 334
7.3.4. Iteratory dla strumieni / 336
7.3.5. Bufory / 336
7.3.6. Filtry dla strumieni / 338
7.3.7. Strumienie błędów i komunikatów / 340
7.4. Asynchroniczna obsługa wejścia i wyjścia / 341
7.4.1. Generatory zdarzeń / 342
7.4.2. Obsługa protokołów sieciowych / 345
7.4.3. Wykorzystanie puli wątków / 347
7.5. Podsumowanie / 348
7.6. Ćwiczenia / 348

8. Przetwarzanie tekstu / 353
8.1. Reprezentacja znaków i napisów, lokalizm / 353
8.1.1. Napisy / 353
8.1.2. Znaki / 354
8.1.3. Lokalizm / 355
8.2. Algorytmy dla napisów / 358
8.3. Wyrażenia regularne i gramatyki bezkontekstowe / 359
8.3.1. boost::regexp – wyrażenia interpretowane w czasie działania / 359
8.3.2. boost::xpressive – wyrażenia tworzone w czasie kompilacji / 363
8.3.3. Gramatyki bezkontekstowe, boost::spirit / 365
8.4. Podsumowanie / 370

9. Łączenie C++ z innymi językami programowania / 371
9.1. Łączenie C i C++ / 372
9.2. Biblioteki ładowane dynamicznie / 374
9.3. C++ i Python / 378
9.3.1. Rozszerzanie Pythona w C++ / 379
9.3.2. Osadzanie Pythona w C++ / 381
9.4. C++ i Java / 381
9.5. Podsumowanie / 382

Odpowiedzi do ćwiczeń / 383
Indeks / 386
Bibliografia / 386

Informacje o bezpieczeństwie produktu Informacje o producencie

Informacje o producencie
Dane producenta:
Nazwa:
BTC Korporacja sp. z o.o.
Adres:
Lwowska 5
05-120 Legionowo
Polska
Kontakt:
Email: biuro@btc.pl
Telefon: 22 767 36 20
Podmiot odpowiedzialny:
Nazwa:
BTC Korporacja sp. z o.o.
Adres:
Lwowska 5
Lwowska 5 Legionowo
Polska
Kontakt:
Email: biuro@btc.pl
Telefon: 22 767 36 20
Informacje o bezpieczeństwie produktu
  • Recenzje

  • Polecane produkty
  • Pytania do produktu

Zadaj pytanie dotyczące produktu. Nasz zespół z przyjemnością udzieli szczegółowej odpowiedzi na zapytanie.


  • Ostatnio przeglądane produkty

Informacje
Kontakt Regulamin O firmie Polityka prywatności
Kontakt
Dołącz do naszego klubu.

Dołącz do naszego klubu i otrzymuj ciekawe informacje, promocje i rabaty.

Dołącz
Sklep internetowy SOTE
Ustawienia cookies
Niezbędne pliki cookie
Te pliki cookie są niezbędne do działania strony i nie można ich wyłączyć. Służą na przykład do utrzymania zawartości koszyka użytkownika. Możesz ustawić przeglądarkę tak, aby blokowała te pliki cookie, ale wtedy strona nie będzie działała poprawnie. Te pliki cookie pozwalają na identyfikację np. osób zalogowanych.

Zawsze aktywne
Analityczne pliki cookie
Te pliki cookie pozwalają liczyć wizyty i źródła ruchu. Dzięki tym plikom wiadomo, które strony są bardziej popularne i w jaki sposób poruszają się odwiedzający stronę. Wszystkie informacje gromadzone przez te pliki cookie są anonimowe.

Reklamowe pliki cookie
Reklamowe pliki cookie mogą być wykorzystywane za pośrednictwem naszej strony przez naszych partnerów reklamowych. Służą do budowania profilu Twoich zainteresowań na podstawie informacji o stronach, które przeglądasz, co obejmuje unikalną identyfikację Twojej przeglądarki i urządzenia końcowego. Jeśli nie zezwolisz na te pliki cookie, nadal będziesz widzieć w przeglądarce podstawowe reklamy, które nie są oparte na Twoich zainteresowaniach.

Nasza strona korzysta z usług Google, takich jak Google Analytics i Google Ads. Aby dowiedzieć się więcej o tym, jak Google wykorzystuje dane z naszej strony, zapoznaj się z polityką prywatności i warunkami Google.

Wysyłanie danych związanych z reklamami
Zgadzam się na wysyłanie danych związanych z reklamami do Google.

Reklamy spersonalizowane Google
Zgadzam się na używanie reklam spersonalizowanych. Reklamy te są dostosowywane do konkretnych preferencji, zachowań i cech użytkownika. Google zbiera dane na temat aktywności użytkownika w internecie, takie jak wyszukiwania, przeglądane strony internetowe, kliknięcia i zakupy online, aby lepiej zrozumieć jego zainteresowania i preferencje.

Koszyk
Twój koszyk jest pusty
Kategorie
  • Wydawnictwo Grupy Medium
    • Seria e.
    • Seria i.
    • Seria b.
    • elektro.info
    • Rynek instalacyjny
    • Izolacje
    • Ekspert budowlany
    • Administrator
  • Instytut Techniki Budowlanej
    • Instrukcje, Wytyczne, Poradniki
    • Prace Naukowe ITB
    • Prace Naukowe w Open Access
    • Projektowanie według Eurokodów
    • Warunki Techniczne Wykonania i Odbioru Robót Budowlanych
  • DAFA Stowarzyszenie Wykonawców Dachów Płaskich i Fasad
    • Fotowoltaika
    • Dachy zielone
    • Lekka obudowa
    • Akustyka
    • Technika mocowań
    • Dachy płaskie
    • PPOŻ.
  • WACETOB
    • Kosztorysowanie
    • Budownictwo
    • Nieruchomości
  • Pakiety książek
  • Architektura
  • Automatyka, sterowanie
  • BHP
  • Biologia
  • Budownictwo
  • Chemia
  • Ekonomia, zarządzanie, biznes
  • Elektronika
  • Energetyka
  • Geodezja, kartografia
  • Górnictwo, wiertnictwo
  • Informatyka
  • Instalacje elektryczne i teletechniczne
  • Instalacje grzewcze
  • Instalacje sanitarne i gazowe
  • Kosztorysowanie
  • Matematyka, fizyka
  • Materiałoznawstwo
  • Mechanika
  • Nieruchomości
  • Normy
    • Normy w wersji elektronicznej
  • Ochrona Środowiska
  • PPOŻ.
  • Prawo budowlane
  • Programy
  • Spawalnictwo
  • Technika
  • Termodynamika
  • Transport
  • Wentylacja, klimatyzacja, chłodnictwo
  • Wnętrza i ogrody
  • Albumy
  • Czasopisma
  • Multimedia
  • Poradniki
  • Słowniki
    • Seria słownik podręczny
  • Mały technik. Książki dla dzieci
  • Kalendarze
  • Inne/pozostałe
  • Kontakt
  • Nowości
  • Dostawa
  • Newsletter
  • Poradnik projektanta elektryka
  • Ebooki
  • Miesięcznik IZOLACJE
  • 22 512 60 60
Moje konto
Nie masz jeszcze konta?
Załóż konto
Wyszukiwanie produktów