C++ topics
- Why C++?
- Install C++
- Install Visual Studio Code
- Install Visual Studio Community 2019
- Write, compile, run the first program Hello world.
- Compile error. Runtime error
- Structure of a C++ program: #include, main, comment.
- Basic cout, cin. First exercice
- Variables: declare, init, global, local, const. Quiz.
- Type. Numbers. casting
- Array.
- Vector
- Statements and Expressions
- Operators: arithmetic, relational, logical, ternary (?:)
- Flow (if, switch)
- Loop (for, while)
- Character
- String
- Functions: define, arguments, return
- Pass by reference
- Inline
- Recursive (fibonacci)
- Pointer
- OOP: class and object
- OOP: class members
- OOP: constructor, destructor. The defaults. rule of three.
- (advanced) explicit constructor
- (advanced) move constructor
- struct
- typedef, using
- friend
- static
- const
- this
- Operator overloading
- Inheritance
- protected
- constructors, destructors
- Multiple inheritance
- polymorphism
- virtual functions
- override
- abstract class as interfaces
- smart pointer: unique (best practice: use unique as possible)
- smart pointer: shared
- smart pointer: weak
- exception handling
- file I/O
- std::vector
- std::array
- std::deque
- std::set and unordered_set
- std::map and std::unordered_map
- stack
- queue
- std::sort and other algorithms
- (advanced) lambda expression
- (advanced) move semantec. rule of five
- unittest with ...
- string algorithm
- (best practice) cppcheck
- C++11 (auto
- C++14
- C++17
- C++20 and C++23
- enum class
- filesystem
- map, filter and reduce
- (best practice) use const
- Resource Acquisition Is Initialization (RAII)
- thread, join
- lock, atomic
- deadlock
- thread pool
- Amdahl's law
- Test-driven development
- Singleton
- UML
- Factory
- Abstract Factory
- Builder
- Prototype
- template