Nowoczesne programowanie w języku C++

Cele szkolenia

Uczestnicy szkolenia nauczą się:

  • używać instrukcji sterujących działaniem programu
  • tworzyć funkcje i moduły
  • stosować zasady programowania zorientowanego obiektowo w C++
  • bezpiecznie zarządzać pamięcią za pomocą smart pointer'ów
  • tworzyć klasy i obiekty
  • stosować dziedziczenie i polimorfizm
  • używać strumieni

Plan szkolenia

Podstawy programowania w języku C++

  • Struktura programu w języku C++
  • Kompilacja oraz łączenie programów
  • Preprocesor
  • Typy danych, operatory i instrukcje sterujące
  • Deklaracje zmiennych oraz stałych, zasięg zmiennych
  • Automatyczna dedukcja typów – słowo kluczowe auto
  • Konwersje typów
  • Wskaźniki i referencje

Organizacja kodu - funkcje i moduły

  • Definiowanie funkcji
  • Przekazywanie parametrów do funkcji
  • Pliki nagłówkowe i pliki źródłowe
  • Organizacja kodu – bariery #include
  • Przestrzenie nazw

Tablice, kontenery STL i iteratory

  • Tablice w języku C++ – tablice natywne i std::array<T>
  • Iteracja po zakresach – wskaźniki, iteratory, range-based-for
  • Łańcuchy znaków – c-łańcuchy i typ std::string
  • Podstawowe kontenery STL
    • std::vector<T>
    • std::list<T>
    • std::map<K, T> i std::unordered_map<K, T>

Programowanie obiektowe

  • Typy użytkownika – struktury, klasy
  • Funkcje składowe – metody
  • Konstruktory
  • Zarządzanie zasobami - RAII
    • Destruktory
    • Specjalne funkcje kopiujące
    • Specjalne funkcje przenoszące – wstęp do semantyki przenoszenia
  • Przeciążanie operatorów dla klas
  • Zarządzanie pamięcią dla obiektów – smart pointery
    • std::unique_ptr
    • std::shared_ptr

Funktory i lambdy

  • Obiekty wywoływalne w C++11
  • Funktory
  • Lambdy
  • std::function – callbacki w C++11
  • Wykorzystanie lambd w algorytmach standardowych STL

Dziedziczenie i polimorfizm

  • Klasy pochodne
  • Konstruktory i destruktory a dziedziczenie
  • 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
  • Statyczne i dynamiczne wiązanie funkcji
  • Funkcje czysto wirtualne
  • Destruktory wirtualne
  • Klasy abstrakcyjne
  • Polimorfizm w języku C++
  • Przykład zastosowania polimorfizmu

Dziedziczenie wielobazowe

  • Przykład dziedziczenia wielokrotnego
  • Problemy związane z dziedziczeniem wielobazowym
  • Wirtualne klasy bazowe

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

Strumienie

  • Koncepcja strumieni w C++ – opis biblioteki iostream
  • Strumienie std::cin, std::cout oraz std::err
  • Strumienie plikowe

Wymagania

Od uczestników szkolenia wymagana jest znajomość podstaw programowania (np. C, Pascal, Java, Python, itp.).

Czas trwania

4 dni po 8 godzin lekcyjnych
Wycena szkolenia zamkniętego

Szkolenie zamknięte w siedzibie Klienta.

Klient zapewnia salę szkoleniową i sprzęt.

Zapytaj o termin i cenę
Wycena szkolenia zdalnego

Szkolenie live online. Warsztaty z trenerem.

Zapytaj o termin i cenę
Terminy szkoleń otwartych

Brak terminu?

Zgłoś zainteresowanie szkoleniem