RTD Training & Development

C++ Advanced Programming

Call us on +44 (0)1225 66 72 72 or send us a message

C++ Advanced Programming

Note: During the Covid-19 crisis, courses will only be delivered over the web

4 days hands-on £1,940+VAT

This course can be delivered over the web

Next scheduled date:
Monday January 20th, 2025 Enrol Now!

Can't wait that long? It may be possible to deliver this course at an earlier date. Contact us if you're interested
Advanced C++ topics including memory management, efficiency, robustness, design patterns and an in-depth look at the Standard Library including the new features introduced in C++98, C++11, C++14 & C++17.

Outline

Object-Oriented Design

  • Identifying classes
  • Simple diagrams
  • Using pseudo-code
  • Introduction to UML

Implementation

  • Naming conventions
  • Code organisation
  • Using namespaces

Encapsulation

  • Using 'friend' elements
  • Using 'const' effectively
  • Operator overloading
  • Deep-copy operations
  • Constructors and type-casting
  • Virtual destructors

Inheritance

  • Using public inheritance
  • Using private inheritance
  • Decoupling the interface and the implementation
  • Polymorphism

Using the STL

  • STL structure
  • Performance guarantees
  • Containers
  • Iterators
  • Algorithms
  • Functors
  • Adaptors
  • Allocators

Extending the STL

  • Iterators and traits
  • Iterator adaptors
  • Defining algorithms
  • Functor adaptors

Enhanced I/O

  • Formatting text
  • Error handling
  • Character types
  • Internationalisation

Design Patterns

  • Using design patterns
  • Factory patterns
  • Delegation patterns
  • Control patterns
  • Algorithmic patterns

Memory Management

  • Handling memory exhaustion
  • Controlling memory allocation
  • Using auto_ptr
  • Overloading new and delete
  • Implementing smart pointers

Using Templates

  • Template functions
  • Default arguments
  • Template classes
  • Reducing code bloat

Efficiency & Robustness

  • Using exceptions
  • Separating algorithms and data
  • Using reference counting
  • Sharing state

Features Requiring Care

  • RTTI
  • Multiple inheritance
  • Virtual inheritance

Overview

C++ is perceived by many to be a difficult language for many reasons. Participants in this course will learn how to avoid many of the pitfalls involved in C++ programming.

The development cycle can be shortened by drawing on the work of others. This course therefore covers the design phase and standard design patterns and also provides an in-depth appreciation of the Standard Template Library (STL).

Participants acquire hands-on experience of the language and its idioms by working through a wide selection of exercises.

This course is suitable for both C++98 and C++14 developers.

Objectives

On successful completion of this course, participants will be able to:

  • Design and implement robust and efficient C++ classes and programs
  • Recognise, understand and apply standard design patterns and idioms
  • Employ the features of the C++ Standard Library
  • Use templates, exceptions and namespaces effectively
  • Recognise and avoid many common pitfalls
  • Work with basic UML diagrams

Audience

This course is aimed at programmers, analysts, engineers and technical managers who wish to enhance their C++ knowledge and skills.

Prerequisites

This course assumes a working knowledge of the C++ language up to the level covered in the C++ Programming course.

share buttons
share on twitter
share on linkedin
share on facebook
share by email