logo

C++ Course

course overview

View dates & book now

Overview

This course will keep the audience abreast of these changes. It covers four main areas: new and advanced language features; using the standard library; implementing object-oriented concepts and patterns in C++; effective C++ programming techniques and idioms. It also suggests ways to maximise efficiency, code quality, and reusability.

Audience

Each participant will leave with a recognised certificate

Outline

  • Evolution of Standard C++
  • ISO C
  • ISO C++
  • Overview of the standard library
  • C++11 Language Enhancements
  • Changes to the language and syntax
  • lambdas, r-values and move constructor
  • additions to the standard library
  • C++ and OO Refresher
  • Abstraction and encapsulation
  • Composition and association
  • Inheritance and polymorphism
  • Patterns and idioms
  • Copying and Conversions
  • The staticcast, dynamiccast, constcast and reinterpretcast keyword casts
  • Logical vs physical const-ness and the mutable keyword
  • Converting constructors and the explicit keyword
  • User defined conversion operators
  • Copy construction and assignment
  • Scope
  • Static class members
  • The Singleton pattern
  • Nested classes
  • Nested class forward declarations
  • The Cheshire Cat idiom
  • Namespaces
  • Delegation Techniques
  • The Object Adapter pattern
  • The Null Object Pattern
  • The Proxy pattern
  • Overloading the member access operator
  • Smart pointers
  • The Template Method pattern
  • Factory objects
  • Subscripting Techniques
  • Overloading the subscript operator
  • Overloading with respect to const-ness
  • Smart references
  • Multi-dimensional subscripting
  • Associative containers
  • Template Functions
  • Using and implementing generic algorithms with template functions
  • Overloading and specialising template functions
  • Template instantiation and linkage
  • Template Classes
  • Using and implementing generic types with templates classes
  • Multiple template parameters
  • The standard vector, list, pair, and map template classes
  • Iterators and Algorithms
  • The need for Iterators
  • The standard library (STL) iterator model
  • Generic algorithms using iterators
  • STL algorithm pitfalls
  • Introduction to function objects
  • Exception Handling and Safety
  • Reviewing Exception handling
  • Strategies for handling exceptions
  • Resource acquisition idioms for exception safety
  • Exceptions in constructors
  • Exceptions in destructors
  • Exception safe classes
  • STL exception safety guarantees
  • Memory Management
  • Object life cycle
  • Allocation failure
  • Customising memory allocation
  • Optimising allocation for a class through caching
  • Derivation safe allocation
  • Controlling timing of construction and destruction
  • Reference Counting
  • Reference counting shared representation
  • Reference counted strings for copy optimisation
  • Subscripting issues
  • Smart pointers for simple, automatic garbage collection
  • Inheritance Techniques
  • Subtyping vs subclassing
  • Abstract and concrete base classes
  • Inheritance scoping issues
  • Multiple inheritance
  • Virtual base classes
  • Interface classes
  • Mixin classes
  • Runtime type information (RTTI)
  • Private and protected inheritance
  • The Class Adapter pattern
  • Functional Abstraction
  • Traditional callbacks using function pointers
  • The Command pattern
  • More on function objects
  • Member function pointers
  • Template Techniques
  • Templating on precision
  • Template adapters
  • Default template parameters
  • Template specialisation
  • Trait classes
  • Member templates
  • Non-type template parameters
  • Optimising template code space
  • Multithreading Techniques
  • Creating multithreaded applications in C++ using the new std::thread class and other related classes new to C++11
  • Brief overview of essential threading concepts
  • Dealing with interesting issues concerning shared data, using locks, atomic and conditional variables

Talk to an expert

Thinking about Onsite?

If you need training for 3 or more people, you should ask us about onsite training. Putting aside the obvious location benefit, content can be customised to better meet your business objectives and more can be covered than in a public classroom. Its a cost effective option. One on one training can be delivered too, at reasonable rates.

Submit an enquiry from any page on this site, and let us know you are interested in the requirements box, or simply mention it when we contact you.

All $ prices are in USD unless it’s a NZ or AU date

SPVC = Self Paced Virtual Class

LVC = Live Virtual Class

Please Note: All courses are availaible as Live Virtual Classes

Trusted by over 1/2 million students in 15 countries

Our clients have included prestigious national organisations such as Oxford University Press, multi-national private corporations such as JP Morgan and HSBC, as well as public sector institutions such as the Department of Defence and the Department of Health.