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.