okladka
  • Zaprojektuj optymalne klasy
  • Zbuduj prawdziwą hierarchię klas
  • Zastosuj mechanizmy polimorfizmu
  • Stwórz wydajną obsługę błędów i wyjątków

"C++. Ćwiczenia zaawansowane" to kontynuacja książki "C++. Ćwiczenia praktyczne" przeznaczona dla tych, którzy chcą pogłębiać swoją wiedzę o najpopularniejszym obecnie języku programowania. Przedstawia kolejne, niezwykle istotne zagadnienia związane z programowaniem w C++, mianowicie zasady programowania obiektowego. Przeczytasz o klasach, metodach i szablonach oraz poznasz w praktyce metody stosowania tych mechanizmów we własnych programach. Nauczysz się technik stosowania gotowych struktur danych, takich jak dynamiczna tablica, kolejka, lista oraz stos.

  • Instalacja środowiska programistycznego
  • Operacje zapisu i odczytu plików
  • Klasy -- definiowanie i stosowanie
  • Konstruktorzy i destruktor klas
  • Hierarchia klas i dziedziczenie
  • Obsługa wyjątków
  • Stosowanie szablonów

Wprowadzenie (5)
Rozdział 1. Piszesz pierwsze programy (9)
  • Instalacja środowiska programistycznego (9)
  • Funkcja main() i ogólny szkic programu (11)
  • Słowo kluczowe namespace, czyli przestrzenie nazw (14)
  • Podsumowanie (16)
Rozdział 2. Operacje na plikach (17)
  • Otwieranie plików do zapisu i odczytu (17)
  • Modyfikowanie standardowych operacji wejścia i wyjścia (20)
  • Podsumowanie (23)
Rozdział 3. Klasy, czyli Twoje własne typy danych (25)
  • Deklarowanie i definiowanie klasy (25)
  • Funkcje zaprzyjaźnione z klasami (28)
  • Statyczne składniki klasy (30)
  • Funkcje statyczne klasy (32)
  • Pola bitowe w klasach (33)
  • Słowo kluczowe this (34)
  • Podsumowanie (35)
Rozdział 4. Konstruktory i destruktor (37)
  • Konstruktor bezargumentowy, zwany domyślnym (37)
  • Konstruktory merytoryczne (38)
  • Lista inicjalizacyjna konstruktora (39)
  • Konstruktor kopiujący (40)
  • Konstruktory konwertujące (42)
  • Konstruktor a składniki stałe klasy (42)
  • Destruktor (43)
  • Gdy w klasie brakuje konstruktora... (44)
  • Podsumowanie (46)
Rozdział 5. Przeciążanie operatorów (47)
  • Operatory zadeklarowane w klasie (47)
  • Operator przypisania = (50)
  • Operatory zadeklarowane poza klasą (52)
  • Operator wyprowadzania danych << (53)
  • Podsumowanie (54)
Rozdział 6. Konwersje, czyli przekształcanie danych jednych typów w inne (55)
  • Operator konwersji (55)
  • Niejawne konwersje za pomocą operatora konwersji (57)
  • Jednoargumentowe konstruktory konwersji (58)
  • Niejawne konwersje za pomocą konstruktora (58)
  • Konstruktor jednoargumentowy explicit (59)
  • Operator static_cast (60)
  • Operator const_cast (61)
  • Operator dynamic_cast (62)
  • Operator reinterpret_cast (63)
  • Podsumowanie (63)
Rozdział 7. Dziedziczenie, czyli hierarchie klas (65)
  • Dziedziczenie po klasie a zawieranie klasy (65)
  • Rodzaje dziedziczenia (67)
  • Konstruktory klasy pochodnej (70)
  • Konstruktor kopiujący klasy pochodnej (72)
  • Operator przypisania w klasie pochodnej (73)
  • Destruktor w klasie pochodnej (74)
  • Funkcje wirtualne (75)
  • Funkcje czysto wirtualne i klasy abstrakcyjne (76)
  • Polimorfizm (77)
  • Destruktor wirtualny (79)
  • Podsumowanie (80)
Rozdział 8. Obsługa sytuacji wyjątkowych (83)
  • Ogólny schemat obsługi wyjątków (83)
  • Zgłaszanie i identyfikacja wyjątków (84)
  • Klasy wyjątków (86)
  • Wyjątki i nowy styl pisania nagłówków funkcji (88)
  • Hierarchia klas wyjątków (90)
  • Wyjątki generowane przez funkcje biblioteczne (91)
  • Podsumowanie (93)
Rozdział 9. Szablony funkcji i klas (95)
  • Szablony funkcji (95)
  • Szablony klas (97)
  • Domyślne typy - parametry szablonów (99)
  • Podsumowanie (100)
Rozdział 10. Kontener vector (101)
  • Rozmiary wektorów (101)
  • Iteratory (104)
  • Wyszukiwanie elementu w wektorze (107)
  • Sortowanie elementów wektora (108)
  • Tablice wielowymiarowe (109)
  • Tablice klas (110)
  • Zewnętrzne funkcje relacji (predykaty) (114)
  • Podsumowanie (116)
Zakończenie (117)