C++ Advanced Programming

Course

Inhouse

Price on request

Description

  • Type

    Course

  • Level

    Advanced

  • Methodology

    Inhouse

  • Duration

    5 Days

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. Suitable for: This course is aimed at programmers, analysts, engineers and technical managers who wish to enhance their C++ knowledge and skills.

About this course

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

Questions & Answers

Add your question

Our advisors and other users will be able to reply to you

Who would you like to address this question to?

Fill in your details to get a reply

We will only publish your name and question

Reviews

Course programme

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.

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

C++ Advanced Programming

Price on request