Module 1
Intro + References
Basics
Workshop Basics
Overloading
What can we overload, and how.
Extra C++ Types (bool & reference)
Workshop overloading
OOP
Quick introduction to Oop
Classes
Structs
Access Modifiers
Constructor
default/delete functions
initializer syntax / constructor initialization list
Workshop classes
Memory
Classical memory interaction
Workshop Memory
Module2
Inheritance
Construction
Polymorphism
Virtual, pure virtual, abstract, interface
Access modifiers
Workshop Inheritance (Shapes)
Exceptions
What are they
How do they work
What to throw and what to catch
Workshop exceptions
Memory exhaustion
How it’s notified
How to handle
Modern Memory Management
RAII
Templates applied to Modern Memory Management (SmartPointer)
Standardized C++11 SmartPointers
Nullptr
Workshop SmartPointers
Namespaces
Workshop Namespaces
Module3
Auto
The new auto keyword
The new auto return syntax
enum
New style enums
constexpr
New constant expressions
About constness
Const and Mutable explained
Lambdas & function objects
Classes that act like functions
Introduction lambda functions
Chrono
n introduction to the new Chrono library
Module 4
Casting
Standard library
String
Containers
Vector (vs)
List
Map
Array
Tuple
Initializer lists
Iterators
range-for syntax
Std Algorithms
Streams
Miscellaneous Keywords
static
explicit
Module 5
Move semantics
Introduction to L/R values
R-value-references applied to move semantics
Type Traits
Obtaining information on compile time
Concurrency
Introduction to C++11’s Threading, async/future and atomic types implementation
Variadic templates - An introduction to C++11’s variadic templates