This course is intended for experienced C++ programmers who wish to deepen their understanding of the language and learn advanced techniques.
This comprehensive course consists of three modules. A preliminary module reviews topics, including inheritance, the ANSI C++ Standard Library, templates, I/O streams, and practical issues such as reliability, testing, efficiency and interfacing to C. This material can be customized or removed depending on the level of class knowledge.
The second module covers more advanced topics. Issues of inheritance and polymorphism are covered, as well as principles of effective class design, exception handling and runtime type information (RTTI). Participants will explore multiple inheritance, including the complications that are introduced by this powerful feature, and advanced applications of C++ concepts, including smart pointers and reference counting.
The third module introduces the Standard Template Library (STL). The main components of data structures, algorithms and iterators will all be studies. Illustrations are provided of a number of important containers – such as vectors, stacks, queues, lists and sets – and extensive programming examples and exercises are provided. A number of progressively developed case studies are used to illustrate object oriented programming techniques and to give the student practical experience in putting together features of C++ learned in the course.
Participants are recommended to have substantial C++ programming experience before attending this class.