Course Outline
Module 1
- Introduction and reference materials
- Core concepts
- Workshop fundamentals
- Function overloading principles
- Eligible targets and methods for overloading
- Additional C++ data types: Boolean and reference types
- Practical exercise: Function overloading
- Object-Oriented Programming (OOP)
- Overview of OOP concepts
- Class structures
- Structure definitions
- Access control specifications
- Constructor functions
- Default and deleted function specifiers
- Initialization syntax and constructor initialization lists
- Practical exercise: Class implementation
- Memory management
- Conventional memory allocation interactions
- Practical exercise: Memory management
Module 2
- Inheritance mechanisms
- Construction sequences
- Polymorphic behavior
- Virtual functions, pure virtual functions, abstract classes, and interfaces
- Access control specifications
- Practical exercise: Inheritance with geometric shapes
- Exception handling
- Definition and scope of exceptions
- Operational mechanics of exception handling
- Guidelines for throwing and catching exceptions
- Practical exercise: Exception handling
- Memory exhaustion scenarios
- Notification protocols for memory depletion
- Handling strategies for memory exhaustion
- Modern memory management techniques
- Resource Acquisition Is Initialization (RAII)
- Application of templates to modern memory management: Smart pointers
- Standardized C++11 smart pointer implementations
- Null pointer literals
- Practical exercise: Smart pointer usage
- Namespace organization
- Practical exercise: Namespace implementation
Module 3
- Automatic type deduction (auto)
- Utilization of the auto keyword for type inference
- Trailing return type syntax using auto
- Enumerations
- Strongly typed enumeration types
- Constant expressions (constexpr)
- Evolution of constant expression evaluation
- Principles of constness
- Differentiation between const and mutable qualifiers
- Lambda expressions and function objects
- Implementation of callable class types
- Introduction to lambda expressions
- Chrono library
- Overview of the C++11 Chrono library for time management
Module 4
- Type casting operations
- Standard template library components
- String management
- Data containers
- Vector implementation
- Linked list implementation
- Map implementation
- Array implementation
- Tuple implementation
- Initializer list usage
- Iterator design and application
- Range-based for loop syntax
- Standard algorithm implementations
- Stream processing
- Key language modifiers
- Static storage duration
- Explicit constructor invocation
Module 5
- Move semantics implementation
- Distinction between lvalues and rvalues
- Application of rvalue references to move semantics
- Type traits inspection
- Compile-time type information retrieval
- Concurrency management
- Overview of C++11 threading capabilities, including async operations, future objects, and atomic type implementations
- Variadic templates: Introduction to C++11 variadic template constructs
Requirements
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!!!