Adresaci szkolenia
Kurs przeznaczony jest dla osób chcących nauczyć się programować aplikacje w języku C++ w oparciu o standard C++14, w środowisku Visual Studio 2017 działającym w systemie Windows 10 Pro.
Wymagania
- Podstawowa znajomość innego języka programowania, np.: C#, Java, Visual Basic, C, JavaScript, etc.
- Znajomość koncepcji programowania obiektowego
- Znajomość systemu Windows 10 (lub Windows 8)
- Znajomość angielskiego (poziom B2)
Program szkolenia
- Pojęcia podstawowe: czym jest C++; elementy składni języka; Hello World; narzędzia, proces kompilacji programu wynikowego; podstawowe koncepcje: zmienne, stałe oraz operatory arytmetyczne;
- Anatomia programu w C++: pliki nagłówkowe, dyrektywy preprocesora, główna funkcja programu, koncepcja przestrzeni nazw; strumienie: wejścia i wyjścia;
- Instrukcje sterujące: if else; pętle; switch; operacje logiczne; operacje warunkowe;
- Typy danych, tablice, wskaźniki: podstawowe typy danych(int,float, double, char, etc.); napisy; tablice; wskaźniki oraz pamięć przydzielana dynamicznie;
- Funkcje:parametry funkcji, parametry wielokrotne, wartości domyślne parametrów, przekazywanie parametrów przez wartość i referencje, przeciążanie funkcji;
- Klasy i obiekty: czym jest klasa i obiekt; abstrakcja i enkapsulacja klas; konstruktor i destruktor; operator selekcji; inicjalizacja zmiennych; obiekty const; kompozycja klas; klasy zaprzyjaźnione; słowo kluczowe this;
- Dziedziczenie i polimorfizm: dziedziczenie i dziedziczenie wielokrotne; poziomy dostępu do elementów klasy; bazowy konstruktor i destruktor; polimorfizm; metody wirtualne; klasy abstrakcyjne;
- Operatory rzutowania typów: typy operatorów rzutowania; problemy związane z rzutowaniem;
- Struktury, typy wyliczeniowe, wyjątki, pliki: struktury; definiowanie typów wyliczeniowych; obsługa wyjątków; praca z plikami;
- Makra i szablony: deklarowanie makr, zalety i wady makr; szablony metod; szablony klas;
- Elementy biblioteki standardowej szablonów STL: czym jest STL; kontenery; iteratory; algorytmy; typ string;
- Dynamiczne kolekcje STL: klasa std::vector; klasa std::list oraz std::forward_list; klasa std::set; klasa std::map;
- Wyrażenia lambda w STL: czym jest wyrażenie lambda; jak zdefiniować wyrażenie lambda; typy wyrażeń lambda;
- Algorytmy STL: klasyfikacja algorytmów, std::generate(); for_each(); std::transform();
- Kontenery adaptacyjne STL: stos; kolejka; kolejka priorytetowa;
- Wskaźniki STL: koncepcja smart pointers; rodzaje smart pointers;
- Dalsze zagadnienia: środowiska programistyczne, programowanie wielowątkowe, C++17