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:
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.
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.
Omówienie koncepcji szablonów funkcji, ich zastosowania oraz zalet. Zdobędziesz wiedzę, która pozwoli Ci na eliminowanie powtarzalności w kodzie.
Zdobycie praktycznego doświadczenia w tworzeniu szablonów funkcji oraz nauka pisania szablonów działających z różnymi typami.
Wykorzystanie typów specjalnych oraz określanie typu zwracanego przez funkcję w celu tworzenia zaawansowanych i elastycznych funkcji.
Nauka przeciążania szablonów funkcji oraz unikanie problemów związanych z niejednoznacznym typem argumentów.
Poznanie koncepcji szablonów klas oraz tworzenie uniwersalnych klas, które mogą pracować z różnymi typami.
Wprowadzenie do tworzenia prostych szablonów klas, co pozwoli uczestnikom na szybkie i łatwe tworzenie prostych i uniwersalnych klas.
Nauka tworzenia szablonów metod w klasach oraz ich stosowania do różnych zadań, co pozwoli na eliminowanie powtarzalności w kodzie.
Poznanie dziedziczenia szablonów i sposobów dziedziczenia z klas szablonowych w celu tworzenia zaawansowanych klas.
Wprowadzenie do metaprogramowania umożliwiającego programowanie na poziomie kompilacji, stosowania go do tworzenia zaawansowanych szablonów klas i funkcji oraz optymalizacji kodu.
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.
Poznanie pojęcia inteligentnych wskaźników, ich zastosowań i problemów, które rozwiązują.
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.
Nauka dynamicznego przydzielania pamięci oraz sposobów unikania problemów związanych z alokacją i zwalnianiem pamięci.
Zapoznanie z unikalnym wskaźnikiem (unique_ptr), odpowiedzialnym za automatyczne zwalnianie pamięci oraz z jego zastosowaniami i korzyściami.
Nauka przekazywania unique_ptr do i z funkcji oraz korzystania z funkcji fabrykujących.
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.
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.
Nauka przenoszenia wskaźników za pomocą shared_ptr oraz przenoszenia wskaźników między różnymi obiektami.
Poznanie słabego wskaźnika (weak_ptr), jego zastosowań oraz sposobów korzystania z niego w celu zabezpieczenia przed wyciekami pamię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.