Skip to page content Skip to section menu Skip to site-wide navigation About Us | Consultancy | Training | Software | Publications | Open Source | Support | Open Standards | FAQ | Jobs
Site Style Info

Advanced C++ - A 5 Day Course

Synopsis

C++ is possibly the richest programming language in common use, and it allows programmers to write code using three distinct styles: procedural, object-oriented, and generic. This course is aimed to take C++ programmers to a new level of understanding and competence in their use of the C++ language and libraries. The course is divided into four parts: the first builds on existing knowledge, showing how to use basic language features correctly, and delegates will probably discover a number of things that they hadn't appreciated about the language and its use. The second section of the course covers templates, the language feature that underlies the Standard Template Library and most recent advances in C++. It is not an exaggeration to say that a thorough understanding of templates is essential in order to be a modern C++ programmer. The third part majors on OO development, and shows how popular idioms and design patterns can be implemented in C++. The final two sections look at the two main libraries used by C++ programmers today: the Standard Template Library and the Boost libraries. The course will introduce both libraries, discuss their main features, and show how to use them.

Prerequisites

Unlike some "advanced" courses, this one does cover complex and advanced material. It is essential that delegates possess a good basic knowledge (and have practical experience) of OO programming in C++. As well as being comfortable with the basic syntax, you should be familiar with declaring, defining and using classes, inheritance, and dynamic memory management.

The class involves a lot of practical work, so delegates should come along prepared to get coding. The course can be run using either GCC on Linux (or OS X), or Microsoft Visual Studio on Windows.

Publicly scheduled dates, locations, and prices

A schedule of dates for this course is not currently available. Please call 0800 651 0338 or use our contact form to enquire about places and availability.


Contents:

Part 1: Using Language Features Correctly

Const and Casting

Conversions and Scope

Proper Exception Handling

Memory Management

Part 2: Templates

Template Functions

Template Classes

Template Metaprogramming

Part 3: C++ Idioms and Design Patterns

Implementing Value Types

The Handle/body Idiom

Functors

Smart Pointers

Singletons

Part 4: Standard Template Library

STL concepts

Containers

Traits

Iterators

Algorithms

Part 5: The Boost Libraries

Introduction to Boost

Common Boost Libraries