Programowanie obiektowe (C++)

2008
  • Eric Brasseur, C++ tutorial for C users, 2008
  • Peter Müller, Introduction to Object-Oriented Programming Using C++, 2008
2004
  • Bjarne Stroustrup, Język C++, 2004
2001
  • David Vandevoorde, Język C++, ćwiczenia i rozwiązania, 2001
2000
  • Bruce Eckel, Thinking in C++ 2nd Edition, 2000
  1. Programowanie obiektowe
    • Podejścia do programowania
    • Obiekty - stan i zachowanie
    • Własności języków obiektowych
    • Klasa, Obiekt, Klasa abstrakcyjna
    • Zależności pomiędzy klasami
    • Zawieranie, Używanie, Dziedziczenie
    • Kompilacja i łączenie kodu
  2. Proste I/O
    • Kompilacja
    • Arytmetyka komputera
    • Komentarze
    • Przepływ sterowania
    • Konstrukcja if
    • Pętle
    • Switch - case
    • Typy liczbowe
  3. Makra i Funkcje
    • Dyrektywy preprocesora
    • Makra
    • Konwersja typów
    • Asercja
    • Tablice jedno i dwuwymiarowe
    • Operator sizeof()
    • Funkcje
      • parametry, prototyp funkcji, dyrektywa inline
    • Namespace
    • Operator przecinka
  4. Wskaźniki, Referencje, Napisy
    • wskaźnik, wskaźnik NULL
    • parametr funkcji typu const
    • referncja
    • dynamiczna alokacja pamięci
    • tablice wskaźników
    • operacje na napisach (C-Style)
    • konwersja typów
    • wycieki pamięci
  5. Struktura, Klasa, Lista, Drzewo BST
    • Konwersja (xxxxx_cast)
    • Wycieki pamięci
    • Zasięg zmiennych
    • Łączenie zewnętrzne
    • Struktura
    • Lista wiązana, drzewo binarne w C++
    • Unia
    • Klasa i Obiekt
    • Konstruktor i Destruktor
  6. Operator this, Przeciążanie operatorów, dziedziczenie
    • Operator this
    • Łączenie wywołań
    • Przeciążanie funkcji
    • Przeciążanie operatorów
    • Definiowanie funkcji operatorowych
    • Operatory rzutujące
    • Dziedziczenie - podstawy
  7. Dziedziczenie, polimorfizm, funkcje wirtualne
    • Konstrukcja i destrukcja obiektów
    • Dziedziczenie, wielokrotne dziedziczenie
    • Dziedziczenie wirtualne
    • Funkcje wirtualne
    • Destruktor wirtualny
    • Polimorfizm i typy: wskaźnikowy i referencyjny
    • Funkcje i klasy czysto wirtualne
    • Interfejs, dynamic_cast
    • Dziedziczenie vs. Kompozycja
  8. Obsługa wyjątków
    • Co to jest wyjątek
    • Zgłaszanie i obsługa wyjątków
    • Wyjątki nieobsłużone
    • Obsługa zakończenia
    • Wskaźnik do funkcji
    • Procedury obsługi, przekazywanie wyjątku
    • Wyjątek a konstruktor i destruktor
    • Specyfikacja wyjątków, hierarchia wyjątków
  9. Struktury w C++
    • Struktury danych a wydajność algorytmów
    • Notacje i złożoności
    • Tablice, lista pojedynczo i podwójnie wiązana
    • implementacja, wydajność
    • Kolejka i Stos
    • Inteligentny wskaźnik
      • implementacja i użycie
    • typedef, register, volatile, go to, string (STL)
  10. Szablony (ang. Templates)
    • Po co pisać szablony?
    • Szablony funkcji, użycie szablonów
    • Parametry szablonu
    • Jawna specyfikacja parametrów szablonu
    • Specjalizacje szablonów
    • Przeciążenie szablonu funkcji
    • Funkcja jako parametr szablonu
    • Szablony i kompilacja
    • Szablony klas
    • Inteligentny wskaźnik jako szablon
    • std::string też jest szablonem
  11. Klasy i Szablony
    • Strumienie napisowe
    • Wskaźniki do pól i metod
    • Klasy zagnieżdżone
    • Dziedziczenie szablonów
    • Zagnieżdżone klasy szablonów
    • „„dziedziczenie”” parametrów szablonu przez klasę zagnieżdżoną po klasie okalającej
    • „„Szablon w szablonie””
    • Wykorzystanie szablonów i klas zagnieżdżonych
  12. Biblioteka standardowa STL - kontenery
    • Biblioteka STL
    • Rodzaje kontenerów
    • Kolekcje, wymagania, koncepty
    • Rozmiar kontenera
    • Iteratory, iteracja po kolekcji
    • Wspólna definicja typów
    • std::vector
      • specjalizacja vector<bool>
    • std::enque
    • std::list
  13. Biblioteka standardowa STL - iteratory, kontenery, obiekty funkcyjne
    • Iterator
    • Rodzaje iteratorów
      • wejściowe, wyjściowe, “do przodu”, dwukierunkowe, swobodnego dostępu
    • Dodatkowa funkcjonalność iteratorów
    • Kontenery asocjacyjne
      • set, multiset, map, multimap, tablica asocjacyjna
    • Kryteria sortowania
    • Inne kontenery, stos, kolejka, kolejka priorytetowa, bitset
    • Obiekty funkcyjne
  14. Wykład podsumowywujący cz. 1
  15. Wykład podsumowywujący cz. 2
    • C++ - trędy i perspektywy
  • user/konrad/teaching/courses/wsh/cpp/about.txt