[RTD Training & Development] www.c-training-courses.co.uk
C & C++ Training Courses
Professional training courses in C and C++ and C# programming and other languages in the UK and Ireland
[All Courses] [Courses] [On-Site Courses] [Custom Courses] [Training Facilities] [Contact Us] [About RTD]

RTD Training

 

C++ Advanced Programming

5 days hands-on £1,499+VAT (€2,499+VAT)

No scheduled date

 

Related Courses

C Programming

C++ Programming

C++ Programming for C Programmers

C++ Advanced Programming

Java Programming for C++ Programmers

Unix Network Programming

Unix and Linux Programming in C

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.

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 Template 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.