reklama - zainteresowany?

C++ dla bystrzaków. Wydanie VII - Helion

C++ dla bystrzaków. Wydanie VII
ebook
Autor: Stephen R. Davis
Tytuł oryginału: C++ For Dummies, 7th edition
Tłumaczenie: Radosław Lesisz, Michał Sternik
ISBN: 978-83-283-5988-8
stron: 430, Format: ebook
Data wydania: 2019-10-01
Księgarnia: Helion

Cena książki: 51,75 zł (poprzednio: 69,00 zł)
Oszczędzasz: 25% (-17,25 zł)

Dodaj do koszyka C++ dla bystrzaków. Wydanie VII

Tagi: C++ - Programowanie

  • Wprowadzenie do jÄ™zyka C++
  • Programowanie funkcjonalne
  • Używanie klas nadrzÄ™dnych i dziedziczenia

Programowanie w języku C++ od podstaw

Bez wzglÄ™du na to, czy jesteÅ› poczÄ…tkujÄ…cym czy Å›rednio zaawansowanym programistÄ…, który chce doszlifować swoje umiejÄ™tnoÅ›ci, dziÄ™ki C++ dla bystrzaków możesz zostać sprawnym programistÄ…. Ten podrÄ™cznik, zaktualizowany, uwzglÄ™dniajÄ…cy zmiany z rozszerzenia do jÄ™zyka C++ z 2014 roku, pomoże Ci zrozumieć klasy, dziedziczenie, pokaże, jak sprawić, by Twój program wykonywaÅ‚ siÄ™ w sposób bezpieczny — i wiele wiÄ™cej.

W książce:

  • Twój pierwszy program
  • Operatory matematyczne i logiczne
  • Programowanie obiektowe
  • ObsÅ‚uga bÅ‚Ä™dów i obrona przed hakerami

Dodaj do koszyka C++ dla bystrzaków. Wydanie VII

Dodaj do koszyka C++ dla bystrzaków. Wydanie VII

Spis treści

C++ dla bystrzaków. Wydanie VII eBook -- spis treści


O autorze 15

Podziękowania od autora 17

Wprowadzenie 19

CZĘŚĆ I: PODSTAWY PROGRAMOWANIA W C++ 25

Rozdział 1: Pierwszy program w C++ 27

  • PojÄ™cia dotyczÄ…ce jÄ™zyka C++ 28
  • Instalacja Code::Blocks 29
    • Windows 29
    • Ubuntu Linux 32
    • Macintosh 34
  • Tworzenie pierwszego programu w C++ 37
    • Tworzenie projektu 38
    • Wprowadzanie kodu w jÄ™zyku C++ 39
    • Korzystanie ze Å›ciÄ…gawki 41
    • Budowanie programu 42
  • Uruchamianie programu 43
  • PrzeglÄ…danie programu z komentarzami 44
    • Analiza struktury programów w C++ 45
    • Opatrywanie kodu źródÅ‚owego komentarzami 45
    • Tworzenie programów z instrukcji C++ 46
    • Deklaracja zmiennych 47
    • Generowanie wyjÅ›cia programu 48
  • Obliczanie wyrażeÅ„ 48
    • Przechowywanie wyników wyrażenia 48
    • PozostaÅ‚a część programu Conversion 49

Rozdział 2: Stałe deklarowanie zmiennych 51

  • Deklaracja zmiennych 52
  • Deklarowanie różnych typów zmiennych 52
    • PrzeglÄ…d ograniczeÅ„ liczb caÅ‚kowitych w C++ 53
    • RozwiÄ…zywanie problemu zaokrÄ…gleÅ„ 54
    • Ograniczenia liczb zmiennoprzecinkowych 55
  • Deklarowanie typów zmiennych 57
    • Typy staÅ‚ych 58
    • Zakres typów liczbowych 59
    • Znaki specjalne 60
  • Szerokie Å‚adunki na autostradzie typu Char 61
  • Czy te obliczenia sÄ… logiczne? 62
  • Wyrażenia mieszane 63
  • Deklaracje automatyczne 64

Rozdział 3: Operacje matematyczne 67

  • Wykonywanie prostych obliczeÅ„ binarnych 68
  • Dekomponowanie wyrażeÅ„ 69
  • OkreÅ›lanie kolejnoÅ›ci operacji 69
  • Wykonywanie operacji jednoargumentowych 70
  • Korzystanie z operatorów przypisania 72

Rozdział 4: Operacje logiczne 75

  • Po co wykonujemy operacje logiczne? 76
  • Korzystanie z prostych operatorów logicznych 76
    • Przechowywanie wartoÅ›ci logicznych 77
    • Używanie logicznych zmiennych typu int 79
    • ZawiÅ‚oÅ›ci wykonywania operacji logicznych na zmiennych zmiennoprzecinkowych 79
  • Wyrażanie liczb binarnych 81
    • System liczb dziesiÄ™tnych 81
    • Inne systemy liczbowe 82
    • System liczb binarnych 82
  • Wykonywanie bitowych operacji logicznych 84
    • Operatory jednobitowe 84
    • Używanie operatorów bitowych 86
    • Prosty test 86

Rozdział 5: Sterowanie przepływem programu 89

  • Sterowanie przepÅ‚ywem programu za pomocÄ… instrukcji rozgaÅ‚Ä™zienia 90
  • Wykonywanie pÄ™tli 92
    • Wykonywanie pÄ™tli, gdy warunek jest prawdziwy 92
    • Wykorzystanie autoinkrementacji i autodekrementacji 94
    • PÄ™tle for 95
    • Unikanie budzÄ…cej strach pÄ™tli nieskoÅ„czonej 98
    • PÄ™tla for zależna od zakresu 98
    • Instrukcje zarzÄ…dzania pÄ™tlami 99
  • Zagnieżdżanie instrukcji sterujÄ…cych 102
  • PrzeÅ‚Ä…czanie na inny temat? 104

CZĘŚĆ II: PROGRAMOWANIE W C++ Z WYKORZYSTANIEM FUNKCJI 107

Rozdział 6: Tworzenie funkcji 109

  • Pisanie i używanie funkcji 110
    • Definiowanie funkcji 112
    • Definiowanie funkcji sumujSekwencje() 112
    • WywoÅ‚ywanie funkcji sumujSekwencje() 113
    • Dziel i rzÄ…dź 113
  • Funkcje w szczegóÅ‚ach 113
    • Funkcje proste 114
    • Funkcje z argumentami 115
  • Przeciążanie funkcji 117
  • Definiowanie prototypów funkcji 119
  • Argumenty domyÅ›lne 120
  • Przekazywanie przez wartość i przekazywanie przez referencjÄ™ 122
  • Typy przechowywania zmiennych 123

Rozdział 7: Przechowywanie sekwencji w tablicach 125

  • Szeregowanie argumentów w tablicach 126
    • Korzystanie z tablic 127
    • Inicjowanie tablic 130
    • SiÄ™ganie poza zakres tablicy 131
    • PÄ™tle bazujÄ…ce na zakresach 131
    • Definiowanie i używanie tablic w tablicach 132
  • Korzystanie z tablic znaków 133
    • Tworzenie tablicy znaków 133
    • Tworzenie ciÄ…gu znaków 134
  • Manipulowanie ciÄ…gami znaków 136
  • Niektóre funkcje biblioteki standardowej 138
  • Miejsce dla ciÄ…gów zÅ‚ożonych z szerokich znaków 139

Rozdział 8: Wskaźniki w C++ 141

  • Rozmiar zmiennej 141
  • Czym jest adres? 143
  • Operatory adresu 143
  • Używanie wskaźników 145
    • Używanie różnych typów wskaźników 146
  • Przekazywanie wskaźników do funkcji 147
    • Przekazywanie przez wartość 147
    • Przekazywanie wartoÅ›ci wskaźnikowych 148
    • Przekazywanie przez referencjÄ™ 148
  • Zmienne staÅ‚e 149
  • Korzystanie ze sterty 151
    • Ograniczony zasiÄ™g 151
    • Analiza problemu zakresu ważnoÅ›ci 152
    • Użycie sterty 153

Rozdział 9: Drugie spojrzenie na wskaźniki w C++ 155

  • Definiowanie operacji na wskaźnikach 155
    • Użycie wskaźników w tablicach 156
    • Użycie operatorów do adresu tablicy 158
    • Operacje wskaźnikowe na ciÄ…gach znaków 159
    • Uzasadnienie użycia wskaźników 161
    • Stosowanie operatorów do wskaźników innych typów niż char 161
    • Porównanie wskaźnika z tablicÄ… 162
  • Wskaźnik null 164
  • Deklaracja i użycie tablic wskaźników 165
    • Wykorzystanie tablic ciÄ…gów znaków 166
    • DostÄ™p do argumentów funkcji main() 168

Rozdział 10: Preprocesor C++ 173

  • Co to jest preprocesor? 173
  • DoÅ‚Ä…czanie plików 174
  • #Definiowanie 177
    • A może by tak nie definiować? 180
    • Wyliczeniowy typ danych 181
  • DoÅ‚Ä…czanie warunkowe z użyciem instrukcji #if 183
  • Obiekty zdefiniowane wewnÄ™trznie 184
  • Typedef 186

CZĘŚĆ III: WPROWADZENIE DO KLAS 187

Rozdział 11: Programowanie obiektowe 189

  • Abstrakcyjne kuchenki mikrofalowe 189
    • Przygotowanie funkcjonalnego nachos 190
    • Przygotowywanie nachos w sposób obiektowy 191
  • Klasyfikacja kuchenki mikrofalowej 191
  • Po co klasyfikujemy przedmioty? 192

Rozdział 12: Klasy w C++ 195

  • Wprowadzenie do klas 195
  • KsztaÅ‚t klasy 196
  • DostÄ™p do elementów klasy 197
  • Aktywacja obiektów 197
    • Symulowanie rzeczywistych obiektów 198
    • Po co zawracać sobie gÅ‚owÄ™ funkcjami skÅ‚adowymi? 198
  • Dodawanie funkcji skÅ‚adowej 199
  • WywoÅ‚ywanie funkcji skÅ‚adowych 200
    • DostÄ™p do pól z funkcji skÅ‚adowej 202
  • Ustalanie zakresu 203
  • Definiowanie funkcji skÅ‚adowych w klasie 204
  • Umieszczanie funkcji skÅ‚adowych poza klasÄ… 206
  • Przeciążanie funkcji skÅ‚adowych 208

Rozdział 13: Wskazywanie na obiekty 211

  • Deklarowanie tablic obiektów 211
  • Deklarowanie wskaźników do obiektów 212
    • Dereferencja wskaźnika obiektu 213
    • Wskazywanie w kierunku strzaÅ‚ek 214
  • Przekazywanie obiektów do funkcji 214
    • WywoÅ‚ywanie funkcji z wartoÅ›ciÄ… obiektu 215
    • WywoÅ‚ywanie funkcji ze wskaźnikiem na obiekt 216
    • WywoÅ‚ywanie funkcji za pomocÄ… operatora referencji 217
  • Po co przejmować siÄ™ wskaźnikami i referencjami? 218
  • Zwracanie do sterty 219
    • Alokowanie obiektów ze sterty 220
    • Kiedy kompilator alokuje za Ciebie pamięć? 220
  • Listy 221
    • Wykonywanie innych operacji na listach 222
    • Wykorzystanie list w programie DaneListyJed 223
  • Promyk nadziei: lista kontenerów w bibliotece C++ 226

Rozdział 14: Chronione elementy składowe klasy 227

  • Ochrona skÅ‚adowych 227
    • Dlaczego potrzebujesz skÅ‚adowych chronionych? 228
    • Jak dziaÅ‚ajÄ… skÅ‚adowe chronione? 228
  • Po co chronić skÅ‚adowe klasy? 230
    • Ochrona wewnÄ™trznego stanu klasy 230
    • Używanie klasy z ograniczonym interfejsem 231
  • DostÄ™p do elementów chronionych z zewnÄ…trz 231

Rozdział 15: "Po co mnie tworzysz, skoro za chwilę chcesz mnie zniszczyć?" 235

  • Tworzenie obiektów 236
  • Korzystanie z konstruktorów 237
    • Konstruowanie pojedynczego obiektu 237
    • Konstruowanie wielu obiektów 238
    • Konstruowanie dupleksu 239
  • Dekonstrukcja obiektu 241
    • Do czego sÅ‚uży destruktor? 241
    • Praca z destruktorami 242

Rozdział 16: Argumenty przekazywane przez konstruktor 247

  • Wyposażenie konstruktorów w argumenty 248
    • Korzystanie z konstruktora 248
  • Przeciążanie konstruktora 250
  • Automatyczne konstruktory domyÅ›lne 253
  • Konstruowanie skÅ‚adowych klasy 255
    • Konstruowanie skÅ‚adowej typu zÅ‚ożonego 255
    • Konstruowanie skÅ‚adowej, która jest staÅ‚Ä… 261
  • Rekonstrukcja kolejnoÅ›ci konstruowania 261
    • Kolejność konstrukcji obiektów lokalnych 262
    • Obiekty statyczne sÄ… konstruowane tylko raz 262
    • Wszystkie obiekty globalne sÄ… konstruowane przed funkcjÄ… main() 263
    • Obiekty globalne sÄ… konstruowane bez okreÅ›lonej kolejnoÅ›ci 264
    • SkÅ‚adowe sÄ… konstruowane w kolejnoÅ›ci, w jakiej zostaÅ‚y zadeklarowane 265
    • Destruktory niszczÄ… obiekty w kolejnoÅ›ci odwrotnej do kolejnoÅ›ci ich tworzenia 265
  • Konstruowanie tablic 265
  • Konstruktory jako forma konwersji 266

Rozdział 17: Konstruktory kopiujący i przenoszący 269

  • Kopiowanie obiektu 269
    • Do czego sÅ‚uży konstruktor kopiujÄ…cy? 270
    • Korzystanie z konstruktora kopiujÄ…cego 270
  • Automatyczny konstruktor kopiujÄ…cy 272
  • Kopiowanie gÅ‚Ä™bokie i kopiowanie pÅ‚ytkie 273
  • Obiekty tymczasowe 277
    • TrwaÅ‚e unikanie obiektów tymczasowych 279
    • Konstruktor przenoszÄ…cy 280

RozdziaÅ‚ 18: SkÅ‚adowe statyczne: czy zmiÄ™kczacz tkanin może pomóc? 283

  • Definiowanie skÅ‚adowej statycznej 284
    • Do czego sÅ‚użą skÅ‚adowe statyczne? 284
    • Używanie skÅ‚adowych statycznych 284
    • OdwoÅ‚ywanie siÄ™ do skÅ‚adowych statycznych 285
    • Przypadki użycia skÅ‚adowych statycznych 287
  • Deklarowanie statycznych funkcji skÅ‚adowych 287
  • O czym to w ogóle jest? 290

CZĘŚĆ IV: DZIEDZICZENIE 293

Rozdział 19: Dziedziczenie 295

  • Czy potrzebujÄ™ dziedziczenia? 297
  • Jak dziedziczy klasa? 297
    • Używanie podklasy 299
    • Konstruowanie podklasy 299
    • Niszczenie podklasy 301
    • Dziedziczenie konstruktorów 301
  • Relacja MA 302

Rozdział 20: Wirtualne funkcje składowe. Czy są realne? 303

  • Do czego jest potrzebny polimorfizm? 306
  • Jak dziaÅ‚a polimorfizm? 307
  • Kiedy funkcja nie jest wirtualna? 308
  • Wirtualne rozważania 310

Rozdział 21: Faktoryzacja klas 313

  • Faktoryzacja 314
  • Implementacja klas abstrakcyjnych 318
    • Opisywanie koncepcji klasy abstrakcyjnej 318
    • Tworzenie klasy konkretnej z klasy abstrakcyjnej 320
    • Przekazywanie klas abstrakcyjnych 320

CZĘŚĆ V: BEZPIECZEŃSTWO 323

Rozdział 22: Czy zaakceptujesz nowy operator przypisania? 325

  • Porównanie operatorów z funkcjami 326
  • Wstawianie nowego operatora 327
  • Tworzenie pÅ‚ytkich kopii to poważny problem 327
  • Przeciążanie operatora przypisania 329
  • Przeciążenie operatora indeksu 333
  • Konstruktor i operator przenoszÄ…cy 334

Rozdział 23: Strumienie wejścia-wyjścia 337

  • Jak dziaÅ‚a strumieÅ„ wejÅ›cia-wyjÅ›cia? 338
    • DomyÅ›lne obiekty strumienia 338
  • Strumienie wejÅ›cia-wyjÅ›cia 340
    • Tryby otwierania 341
    • Hej, pliku, w jakim jesteÅ› stanie? 342
    • Czy możesz mi pokazać przykÅ‚ad? 343
  • Inne metody klas obsÅ‚ugi strumieni 346
    • BezpoÅ›rednie czytanie i zapisywanie strumieni 348
    • ZarzÄ…dzanie formatem 350
    • O co chodzi z endl? 351
    • Umieszczanie wskaźnika w pliku 352
  • Korzystanie z podklas klasy stringstream 353
  • Manipulowanie manipulatorami 356

RozdziaÅ‚ 24: ObsÅ‚uga bÅ‚Ä™dów - wyjÄ…tki 359

  • Uzasadnienie dla nowego mechanizmu obsÅ‚ugi bÅ‚Ä™dów 361
  • DziaÅ‚anie mechanizmu wyjÄ…tków 362
  • Czym można rzucać? 365
  • Uwaga, przechodzÄ™! 367

Rozdział 25: Dziedziczenie wielokrotne 369

  • Mechanizm dziedziczenia wielokrotnego 370
  • Jak sobie poradzić z niejasnoÅ›ciami dotyczÄ…cymi dziedziczenia? 371
  • Dziedziczenie wirtualne 372
  • Konstruowanie obiektów dziedziczenia wielokrotnego 378
  • Wyrażanie sprzecznych opinii 379

Rozdział 26: Szablony w C++ 381

  • Uogólnianie funkcji do szablonu 382
  • Szablony klas 384
  • Wskazówki dotyczÄ…ce korzystania z szablonów 387
  • Instancje szablonów zewnÄ™trznych 388
  • Implementowanie listy inicjalizacyjnej 388

Rozdział 27: Standaryzacja w bibliotece STL 391

  • Kontener typu string 392
  • Iterowanie po listach 397
    • PrzeglÄ…danie listy 398
    • Operacje na caÅ‚ej liÅ›cie 400
    • Czy możesz mi pokazać przykÅ‚ad? 400

Rozdział 28: Pisanie bezpiecznego kodu 403

  • Motywy dziaÅ‚ania hakerów 404
  • Na czym polega wstrzykniÄ™cie kodu? 406
    • PrzykÅ‚adowe wstrzykniÄ™cie SQL 406
    • Unikanie wstrzykiwania kodu 408
  • PrzepeÅ‚nianie bufora dla zabawy i zysku 409
    • Czy mogÄ™ zobaczyć przykÅ‚ad? 410
    • Hakerskie wykorzystanie przepeÅ‚nienia bufora 412
    • Unikanie przepeÅ‚nienia bufora - pierwsza próba 416
    • Unikanie przepeÅ‚nienia bufora - druga próba 418
    • Kolejna zaleta klasy string 420
    • Dlaczego nie zawsze należy używać klasy string? 422

CZĘŚĆ VI: DEKALOGI 425

RozdziaÅ‚ 29: Dziesięć sposobów na zapobieganie bÅ‚Ä™dom 427

  • WÅ‚Ä…czaj wszystkie ostrzeżenia i komunikaty o bÅ‚Ä™dach 427
  • Koduj w jasnym i spójnym stylu 428
  • Ograniczaj widoczność 429
  • Dodawaj komentarze do kodu w trakcie pisania 430
  • Wykonuj krok po kroku każdÄ… Å›cieżkÄ™ przynajmniej raz 431
  • Unikaj przeciążania operatorów 431
  • ZarzÄ…dzaj stertÄ… systematycznie 431
  • Używaj wyjÄ…tków do obsÅ‚ugi bÅ‚Ä™dów 432
  • Deklaruj wirtualne destruktory 432
  • Unikaj dziedziczenia wielokrotnego 434

RozdziaÅ‚ 30: Dziesięć sposobów na ochronÄ™ programów przed hakerami 435

  • Nie zakÅ‚adaj niczego w odniesieniu do danych wprowadzanych przez użytkowników 436
  • ObsÅ‚uguj awarie z wdziÄ™kiem 437
  • Zapisuj logi programu 438
  • PostÄ™puj zgodnie z dobrymi zasadami wytwarzania oprogramowania 439
  • Wdrożenie kontroli wersji 440
  • Bezpiecznie uwierzytelniaj użytkowników 441
  • ZarzÄ…dzaj zdalnymi sesjami 444
  • Zaciemniaj swój kod 445
  • Podpisz swój kod za pomocÄ… certyfikatu cyfrowego 448
  • Użyj bezpiecznego szyfrowania wszÄ™dzie tam, gdzie jest to konieczne 449

CZĘŚĆ VII: DODATKI 451

Skorowidz 453

Dodaj do koszyka C++ dla bystrzaków. Wydanie VII

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2024 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.