C++ GENERYCZNY (UOGÓLNIONY)

Aby osiągnąć sukces jako programista, ważne jest, aby stale rozwijać swoje umiejętności i poznawać nowe technologie. Kurs C++ generyczny pozwoli uczestnikom pogłębić swoją wiedzę z zakresu programowania w C++, nauczyć się tworzenia bardziej zaawansowanych aplikacji oraz unikania powszechnych problemów. W dużym uproszczeniu nauczymy się budować szablony, dzięki którym nasz kod będzie bardzo uniwersalny. Zaoszczędzi nam to bardzo dużo zbędnej pracy przy pisaniu kodu. 


Kurs jest przeznaczony dla osób, które już posiadają podstawową wiedzę z zakresu programowania w C++ i chcą się rozwijać w tej dziedzinie.


Zagadnienia poruszane w kursie:


Kompilator 

Dowiemy się, jak radzić sobie z problemami związanymi z uruchamianiem, wersją i instalacją kompilatora. Lekcja ta obejmuje porady i wskazówki dotyczące wyboru odpowiedniego kompilatora, zarządzania jego wersjami oraz rozwiązywania typowych problemów związanych z konfiguracją środowiska.


Przeciążanie funkcji

Wprowadzenie do przeciążania funkcji oraz korzyści wynikające z tworzenia funkcji o tej samej nazwie, lecz różniących się argumentami i typami zwracanych wartości. 


Teoria szablonów funkcji

Omówienie koncepcji szablonów funkcji, ich zastosowania oraz zalet. Zdobędziesz wiedzę, która pozwoli Ci na eliminowanie powtarzalności w kodzie.


Praktyka szablonów funkcji

Zdobycie praktycznego doświadczenia w tworzeniu szablonów funkcji oraz nauka pisania szablonów działających z różnymi typami.


Typ zwracany przez funkcję

Wykorzystanie typów specjalnych oraz określanie typu zwracanego przez funkcję w celu tworzenia zaawansowanych i elastycznych funkcji.


Przeciążanie szablonów funkcji

Nauka przeciążania szablonów funkcji oraz unikanie problemów związanych z niejednoznacznym typem argumentów.


Szablony klas

Poznanie koncepcji szablonów klas oraz tworzenie uniwersalnych klas, które mogą pracować z różnymi typami.


Proste szablony klas

Wprowadzenie do tworzenia prostych szablonów klas, co pozwoli uczestnikom na szybkie i łatwe tworzenie prostych i uniwersalnych klas.


Szablony metod w klasie 

Nauka tworzenia szablonów metod w klasach oraz ich stosowania do różnych zadań, co pozwoli na eliminowanie powtarzalności w kodzie.


Dziedziczenie szablonów

Poznanie dziedziczenia szablonów i sposobów dziedziczenia z klas szablonowych w celu tworzenia zaawansowanych klas.


Teoria metaprogramowania

Wprowadzenie do metaprogramowania umożliwiającego programowanie na poziomie kompilacji, stosowania go do tworzenia zaawansowanych szablonów klas i funkcji oraz optymalizacji kodu.


Praktyka metaprogramowania

Zdobycie praktycznego doświadczenia w stosowaniu metaprogramowania oraz nauka tworzenia szablonów klas i funkcji, które są tworzone na etapie kompilacji, a nie wykonania programu.


Wprowadzenie do inteligentnych wskaźników

Poznanie pojęcia inteligentnych wskaźników, ich zastosowań i problemów, które rozwiązują.


Wskaźniki

Omówienie pojęcia wskaźnika, jego działania oraz problemów, które można napotkać w związku z używaniem wskaźników.


Dynamiczne przydzielanie pamięci

Nauka dynamicznego przydzielania pamięci oraz sposobów unikania problemów związanych z alokacją i zwalnianiem pamięci.


Unique_ptr - unikalny wskaźnik

Zapoznanie z unikalnym wskaźnikiem (unique_ptr), odpowiedzialnym za automatyczne zwalnianie pamięci oraz z jego zastosowaniami i korzyściami.


Unique_ptr - przekazywanie do i z funkcji

Nauka przekazywania unique_ptr do i z funkcji oraz korzystania z funkcji fabrykujących.


Unique_ptr - tablice

Omówienie korzystania z unique_ptr w kontekście tablic, w tym alokacji pamięci dla tablic i zwalniania pamięci za pomocą unique_ptr.


Shared_ptr - wskaźnik współdzielony

Wprowadzenie do wskaźnika współdzielonego (shared_ptr), który umożliwia współdzielenie pamięci między różnymi obiektami, oraz z jego zalet i wad.


Shared_ptr - przenoszenie wskaźników

Nauka przenoszenia wskaźników za pomocą shared_ptr oraz przenoszenia wskaźników między różnymi obiektami.


Weak_ptr - zastosowania

Poznanie słabego wskaźnika (weak_ptr), jego zastosowań oraz sposobów korzystania z niego w celu zabezpieczenia przed wyciekami pamięci.

 

Bonus - R-wartość, L-wartość, referencja R-wartości

W dodatkowej lekcji uczestnicy poznają pojęcia R-wartości, L-wartości i referencji R-wartości, różnice między nimi oraz sposoby ich wykorzystania w praktyce.