Overview
This course will take you from a basic knowledge of C++ to using more advanced features of the language. This course is for you if you want to deepen your basic knowledge of C++, you want to learn C++ 11 features, or you’ve taken basic C++ course and you’re looking for the next step.
Objectives
At the end of C++ Programming training course, participants will be able to
Prerequisites
All participants should have coding experience with the standard C language or any other object-oriented language.
Course Outline
- Evolution of programming types
- Encapsulation
- Polymorphism
- Inheritance
- Modularity and abstraction
- Istream class
- Ostream class
- Cout and cin I/O object (functions)
- I/O manipulators
- I/O inserters and extractors
- The Global Name Space (GNS)
- The std namespace
- Creating namespaces
- Scoping identifiers in namespaces
- Namespace issues
- collisions
- pollutions
- Namespace aliases
- Inlined namespaces
- Basic class definition
- Private and public members
- Instantiation of (class) objects
- static
- dynamic
- Constructors and destructors
- default keyword
- delete keyword
- delegating (overloaded types)
- arguments to constructors
- Template classes
- template aliases
- forward referencing
- perfect forwarding
- variadic templates
- using RTTI to determine object types
- Object pointers
- The this pointer
- Arrays of objects
- Smart pointers
- unique_ptr
- shared_ptr
- weak_ptr
- References
- move semantics
- move reference (operations)
- move constructor
- Exception Handling
- Class member functions
- Overloading function capabilities
- Passing objects to functions
- by value (copy)
- by reference
- Overloading constructor functions
- Template functions
- Default arguments
- Operator overload(ing functions)
- Lambdas (anonymous functions)
- closures
- captures
- trailing return type
- Const_cast
- Static_cast
- Brace initialization
- Base and derived classes
- Access control
- Constructors and destructors
- Multiple inheritance
- Virtual base classes
- Virtual functions
- Using override
- Using final
- History of the library
- Containers, algorithms, references, and iterators
- Using the vector, array, map, and string templates
- Begin( ) and end( ) methods
- Tuple container
- Regular expressions
- Thread operations
- Random number operations
- Clock and timing capabilities
- Type aliases
- Decltype
- Type traits
- Static assert
- Enumerated (scoped) class
- User-defined literals