The course will give a broad overview of the C++ Programming language, focusing on modern C++, up to C++17. This course will cover the use of the Standard Library, including containers, iterator, function objects and algorithms. From the perspective of application development, a number of design patterns will be considered.
Programmers needing to write C++ code.
Programmers needing to maintain C++ code.
5 days
Create a string class as a means to investigate many issues, involving the use of operator overloading and including overloading new and delete. Creation of the class will also require consideration of ‘const correctness’.
Consider the issues involved in exception handling including the concept of exception safety.
Review definition of template functions, including template parameter type deduction. Introduction to template metaprogramming. Newer features including template template parameters and variadic templates. Creation of template classes.
Introduction to Design Patterns and consideration of a number of patterns, such as, factory method, builder, singleton and adapter.
Standard Library features, such as, Containers, Iterator, Function Objects and Algorithms. Introduction to Lambda expressions.
The writing of code throughout the course will be oriented towards performant code, including use of R Value references and ‘move’ semantics.
The use of pointers will be considered throughout the course. Smart pointers will be considered to improve program safety and help avoid the use of ‘raw’ pointers.
This section will consider the creation of threads and synchronisation issues. A number of synchronisation primitives will be considered. Async and the use of Atomic will also be considered.
Summarising some of the newer features to be considered are: Auto, Lambdas expression, smart pointers, variadic templates and folds, R Value references and tuple together with structured binding.
"Hard concepts were explained very simply."
"I’ve found it very useful and the course was very well put together and delivered."
This structured course uses Instructor Led Training to provide the best possible learning experience. Small class sizes ensure students benefit from our engaging and interactive style of teaching with delegates encouraged to ask questions throughout the course. Quizzes follow each major section allowing checking of learning. Hands on sessions are used throughout to allow delegates to consolidate their new skills.