Opis szkolenia:
Szkolenie przeznaczone dla programistów chcących nauczyć się profesjonalnego programowania w języku C++. W trakcie szkolenia omawiane są podstawowe pojęcia języka C++, takie jak programowanie obiektowe, tworzenie klas, dziedziczenie i polimorfizm, zarządzanie pamięcią, składowe dynamiczne oraz statyczne. Szkolenie to polecane jest także dla programistów języka C, którzy chcą nauczyć się poprawnego programowania obiektowego w C++.
Plan szkolenia:
Struktura programu w języku C++
Kompilacja oraz łączenie programów
Typy danych, operatory i instrukcje sterujące
Funkcje i moduły
- Pliki nagłówkowe
- Pliki źródłowe
- Preprocesor
- Przestrzenie nazw
- Organizacja kodu - bariery #include
Wskaźniki, tablice i C-łańcuchy
Łańcuchy znaków - typ std::string
Zarządzanie pamięcią za pomocą operatorów new i delete
- Operator new
- Operator delete
- Dynamiczne zarządzanie pamięcią tablic
- Obsługa błędów związanych z operatorem new
Programowanie obiektowe w C++
- Struktura klasy
- Funkcje składowe
- Konstruktory
- Przeciążenie funkcji składowych
- Definiowanie operatorów dla klas
Optymalizacja efektywności kodu
- Funkcje rozwijane w miejscu wywołania
Referencje i stałe
- Przekazywanie parametrów do funkcji i konstruktory kopiujące.
- Referencje
- Stałe
- Stałe funkcje składowe
- Wskaźniki stałych i stałe wskaźniki
Konwersja typów oraz klasy zaprzyjaźnione
- Automatyczna konwersja typów
- Operatory konwersji typów
- Słowo kluczowe explicit
- Funkcje oraz klasy zaprzyjaźnione
- Słowo kluczowe friend i programowanie obiektowe
Obsługa wyjątków
- Koncepcja obsługi sytuacji wyjątkowych
- Bloki try... catch
- Standardowe klasy wyjątków
- Klasy wyjątków użytkownika
- Wyjątki i deklaracje interfejsów
- Obsługa nieoczekiwanych wyjątków
- Funkcje pomocnicze obsługi wyjątków
- Wyjątki w destruktorach
- Wyjątki a gwarancje bezpieczeństwa kodu
Dziedziczenie jednobazowe
- Implementacja klas pochodnych
- Konstruktory obiektów klasy bazowej
- Dostęp do składowych klasy bazowej
- Przeciążenie i przesłanianie funkcji składowych
- Dziedziczenie publiczne, chronione i prywatne - widoczność składowych w klasach pochodnych
Funkcje wirtualne i polimorfizm
- Statyczne i dynamiczne wiązanie funkcji
- Funkcje czysto wirtualne
- Destruktory wirtualne
- Klasy abstrakcyjne
- Polimorfizm w języku C++
- Przykład zastosowania polimorfizmu
Strumienie
- Strumienie std::cin, std::cout oraz std::err
- Strumienie plikowe
Dziedziczenie wielobazowe
- Przykład dziedziczenia wielokrotnego
- Problemy związane z dziedziczeniem wielobazowym
- Wirtualne klasy bazowe
Czas trwania szkolenia:
5 dni po 8 godzin lekcyjnych