Course Overview

This intensive seminar, based on material in Scott Meyers' landmark books (Effective C++, More Effective C++, and Effective STL), explains how to use C++ effectively, and how to create libraries and programs that are correct, efficient, portable, maintainable, and extensible.

Key Learning Areas

  • Knowledge of the rules of thumb applied by expert C++ programmers as they design and implement software systems.
  • An understanding of the proper application of C++'s many features, e.g., member and non-member functions, templates, inheritance, virtual and non-virtual functions, namespaces, etc.
  • Insights into how to effectively combine language features to achieve desired behavior.

Course Outline

  • const
  • Resource Management
  • Constructors, Destructors, and Assignment Operators
  • Further Class Design
  • Inheritance and Object-Oriented Design
  • Concepts and Architecture of the STL
  • Efficiency
  • Programming with Exceptions

Who Benefits

Systems designers, programmers, and technical managers involved in the design, implementation, and maintenance of production libraries and applications using C++. Participants should already know the basic features of C++ (e.g., classes, inheritance, virtual functions, templates), but expertise is not required. Every C++ programmer will come away from this seminar with useful, practical, proven information.

Often combined with Moving Up to Modern C++: An Introduction to C++11/14 for C++ Programmers. Lecture and discussion only.

Prerequisites

Participants should already know the basic features of C++ (e.g., classes, inheritance, virtual functions, templates), but expertise is not required. Every C++ programmer will come away from this seminar with useful, practical, proven information.