Concepte cheie: Îți consolidezi înțelegerea caracteristicilor esențiale și moderne C++.
Hands‑on pe tablouri, funcții, gestionarea memoriei, OOP, șabloane, STL și concurență.
Construiești o bază solidă pentru teme avansate și pregătire pentru certificări.
Dobândești experiență practică prin scriere și rulare de cod (~70% practică).
Cum te ajută acest curs: capeți încredere să folosești eficient C++ în proiecte reale.
Cui i se adresează: conceput pentru dezvoltatori cu cunoștințe de bază în C++ care vor să avanseze.
La final vei aplica cu încredere C++ la nivel intermediar și te vei pregăti pentru examenul CPA.
Curriculum
Introducere în programarea C++
- Procesul de build: din surse la binar; artefacte produse la build
- Lucrul cu șiruri (strings)
- Standard input și output
- Formatarea șirurilor
- Controlul fluxului: condiții, bucle, switch
- Bazele numerelor în virgulă mobilă: reprezentare, precizie, comparație
- Lucrul cu tablouri (arrays)
- Tablouri multidimensionale și dimensiunile lor
- Operații pe tablouri: sortare și operații de tip reduce
Elemente de C++ modern
- Cuvântul cheie auto
- nullptr
- Return type deduction
- decltype, typeid, type traits
- Strongly-typed enums (scoped enums)
- static_assert și aplicații
- override
- Defaulted constructors
- constexpr
- Lucrul cu numere aleatoare în C++ modern
Mecanismul funcțiilor
- Lucrul cu funcții
- Parametrii funcțiilor
- Return type
- Variabile locale vs. globale
- Avertismente privind variabilele globale
Pointeri și memorie
- Variabile și adrese; memory layout
- Bazele pointerilor și aritmetica pointerilor
- NULL vs. nullptr
- Alocare dinamică cu new și delete
- Pointeri și tablouri; tablouri multidimensionale
- Tablouri și funcții
OOP în C++
- struct vs. class; clase și obiecte
- Abstractizare și încapsulare
- Constructori și destructori; supraîncărcarea constructorilor
- Initialization list vs. member initialization
- Cuvântul cheie this
- friend, private, protected, public
- Compoziție, moștenire, polimorfism, dynamic dispatch
- Clase și metode final; override și delete
- Delegating constructors
Șabloane (Templates)
- Function templates și type inference
- Class templates; nested template classes
- Variadic templates
Programare funcțională practică
- Function pointers
- Functors
- Lambdas
- Lambda parameters și return types
- Lambda capture expressions
- Cum funcționează lambdas
- Generic lambdas; mutable lambdas
Standard Template Library
- Vectors; vectors și memorie; vectors multidimensionale
- Lists
- Maps (obiecte ca valori și chei)
- Multimaps
- Sets
- Stacks
- Queues și deques
- Algorithms
Multithreading și paralelism
- Bazele: visibility, atomicity
- Atomic operations în C++ modern
- Mutexes și locks
- Condition variables: utilizare și scenarii
Sub capotă
- Costul la runtime al caracteristicilor C++
- Funcții virtuale și pure virtual
- Adresele obiectelor în (multi)moștenire
- No-cost C++ features vs. low-cost C++ features
Diverse
- rvalues și lvalues
- lvalue references vs. rvalue references
- Move constructors și move assignment operators
Structura zilei de curs
- Partea 1: 09:00–10:30
- Pauză: 10:30–10:45
- Partea 2: 10:45–12:15
- Pauză de prânz: 12:15–13:15
- Partea 3: 13:15–15:15
- Pauză: 15:30–15:45
- Partea 4: 15:45–17:30