Course Outline
Module 1
- Introduction and References
- Core Concepts
- Basics Workshop
- Function Overloading
- Overloadable Entities and Techniques
- Additional C++ Types (bool & reference)
- Overloading Workshop
- Object-Oriented Programming (OOP)
- Rapid Introduction to OOP
- Classes
- Structs
- Access Modifiers
- Constructors
- Default and Deleted Functions
- Initializer Syntax and Constructor Initialization Lists
- Classes Workshop
- Memory Management
- Traditional Memory Interaction Models
- Memory Workshop
Module 2
- Inheritance
- Construction in Inheritance
- Polymorphism
- Virtual, Pure Virtual, Abstract Classes, and Interfaces
- Access Modifiers in Inheritance
- Inheritance Workshop (Shapes)
- Exception Handling
- Understanding Exceptions
- Mechanics of Exception Handling
- Best Practices for Throwing and Catching
- Exceptions Workshop
- Memory Exhaustion
- Notification Mechanisms for Exhaustion
- Handling Strategies
- Modern Memory Management Paradigms
- RAII (Resource Acquisition Is Initialization)
- Applying Templates to Modern Memory Management (SmartPointers)
- C++11 Standardized SmartPointers
- nullptr
- SmartPointers Workshop
- Namespaces
- Namespaces Workshop
Module 3
- The auto Keyword
- Decltype(auto) and Type Deduction
- Trailing Return Type Syntax with auto
- Enumerations (enum)
- Strongly Typed Enumerations (enum class)
- constexpr
- Compile-Time Constant Expressions
- Understanding Constness
- Explanation of const and mutable
- Lambdas and Function Objects
- Classes Mimicking Functions
- Introduction to Lambda Functions
- Chrono Library
- Overview of the Modern Chrono Library
Module 4
- Type Casting
- Standard Library Overview
- std::string
- Containers
- std::vector
- std::list
- std::map
- std::array
- std::tuple
- Initializer Lists
- Iterators
- Range-based for Loop Syntax
- Standard Algorithms
- Streams
- Key C++ Keywords
- static
- explicit
Module 5
- Move Semantics
- Introduction to L-values and R-values
- R-value References Applied to Move Semantics
- Type Traits
- Compile-Time Introspection
- Concurrency
- Introduction to C++11 Threading, async/future, and atomic types
- Variadic Templates - An Introduction to C++11’s Variadic Templates
Requirements
Minimum of 1 year of C++ experience
Testimonials (3)
how we can use reserved words and best practices to be used when using Objet Oriented Programming. how we can rely on cpp reference to get knowledge of desired topics
Alejandro - we need to hace this group for mexico people only from Turf and compact utility
Course - Advanced C++ Software Design
The trainer always solves my doubts.
David C Pascual C - we need to hace this group for mexico people only from Turf and compact utility
Course - Advanced C++ Software Design
I liked being submerged into the C++ language for 5 days - not interrupted by regular work - in a row a lot ... Personally not as experienced in C++ as my colleagues, I decided to join this course to take a deep dive. The dive triggered me hugely to learn more ... which is exactly what I wanted to achieve. I appreciated the expertise knowledge of the trainer - and that of my colleagues. The fact that topics were very quickly touched and not addressed in detail, is what I expect from an advanced course. Sometimes too quick for me to follow (but that's a known and accepted drawback from my joining this course :-)) ... but on the other hand provided me with a fairly complete overview of the subtleties of the language. Thanks a lot for presenting a course in this way! Most appreciated!!!