Advanced C++

Many of the intricate concepts of C++ are syntactically difficult to read and at the same time demand a good understanding of concepts too. Once mastered, however, the application of these features can result in C++ programs that are very powerful and efficient! This courses teaches the compiler's view of C++ and STL and shows how things work behind the scenes, preparing participants to write better and more effective C++ code!

Course Benefits

Upon completion of this course, participants will be able to:
  • Review understanding of Object Oriented Modelling and OOP principles
  • Get a perfect understanding of core C++ concepts
  • Understand the compiler's view of a C++ program and how to convert it to it's C equivalent
  • Understand inline functions in detail, including static inline and extern inline functions
  • Understand function overload resolution in detail
  • Overload special operators and achieve better readability
  • Overload new and delete to provide custom memory management, including the placement new form
  • Investigate the runtime polymorphism implementation using v-table and v-ptr
  • Appreciate the use cases for C++ style type casting using static_cast, dynamic_cast, const_cast and reinterpret_cast
  • Make use of RTTI and typeid to identify objects at runtime
  • Understand function templates, template functions, function template instantiation - explicit and implicit, template specialization
  • Understand class templates, template classes, class template instantiation and specialization
  • Use STL containers: vectors, lists, strings, sets, maps, stacks, queues, etc.
  • Use STL iterators: forward iterators, input iterators, output iterators, bidirectional iterators and random access iterators
  • Use STL algorithms: searching, sorting, shuffling, rotating, counting, generating, accumulating, transforming, copying, filling, replacing, removing, etc.

Target Audience

  • C++ Developers who want to improve their understanding of C++ and take their coding to the next level

Prerequisites

  • Working knowledge of C++

Course Duration

4 days