C++ Advanced training course

Exploit Advanced Language & Library Features of C++ And Get Increased Productivity

NEXT COURSE 18 November (4 days £1995 + VAT) BOOK NOW

JBI training course London UK

  • Learn to use Language Features Correctly
  • Gain an introduction to metaprogramming
  • Understand how Templates work with functions
  • Explore C++ Idioms and Design Patterns
  • Understand smart pointers
  • Learn Policy-Based Design
  • Exploit Advanced Language & Library Features of C++ And Get Increased Productivity
  • Apply Containers: Sequence and Associative containers and Adapters
  • Learn Standard Template Library with concept based programming 
  • Explore Boost and The Boost Libraries

FULL COURSE DETAILS

This advanced C++ training course aims to take C++ programmers to a new level of understanding and competence in their use of the C++ language and libraries. The course builds on existing knowledge, showing how to use basic language features correctly, it then covers templates, the language feature that underlies the Standard Template Library and most recent advances in C++. 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.

FULL COURSE DETAILS
JBI training course London UK
JBI training course London UK

Experienced C++ programmers, who are looking to gain advanced skills and programming techniques using C++

FULL COURSE DETAILS

Related Courses

Part 1: Using Language Features Correctly

Const and Casting

  • Const correctness
  • Overloading on const
  • C++ cast operators
  • Mutable

Conversions and Scope

  • Standard conversions
  • Converting constructors
  • User defined conversions
  • Namespaces
  • Koenig lookup
  • Nested types
  • Static

Proper Exception Handling

  • Throwing and catching correctly
  • Exception safe code

Memory Management

  • The new handler
  • Placement new
  • Overloading new and delete

Part 2: Templates

Template Functions

  • What are templates?
  • Implementing template functions
  • Template instantiation

Template Classes

  • Creating a template class
  • Class instantiation
  • Non-type template parameters
  • Specialization

Template Metaprogramming

  • A brief introduction to metaprogramming

Part 3: C++ Idioms and Design Patterns

Implementing Value Types

  • What are value types?
  • Construction and destruction
  • Copying and assignment
  • Operator overloading

The Handle/body Idiom

  • The Bridge design pattern
  • Using Bridge to decouple compilation
  • Implementing handle/body

Functors

  • What are functors?
  • Implementing functors using operator overloading

Smart Pointers

  • What are smart pointers?
  • Uses of smart pointers in C++
  • Implementing a simple smart pointer
  • Reference counting and smart pointers
  • Std::auto_ptr (deprecated)

Singletons

  • The Singleton design pattern
  • A naïve implementation
  • Problems with Singleton in C++
  • Controlling Singleton lifetime

Policy-Based Design

  • Efficient library design
  • Mixing templates and multiple inheritance
  • Policies and policy classes

Part 4: Standard Template Library

STL concepts

  • Concept-based programming
  • Containers, iterators and algorithms

Containers

  • Sequence containers
  • Associative containers
  • Adapters

Traits

  • The need for traits
  • Implementation of traits in STL

Iterators

  • The Iterator design pattern
  • Iterator concepts in C++
  • Iterators and containers
  • Implementing and using iterators
  • Stream iterators

Algorithms

  • The STL standard algorithms
  • Creating and using algorithm

Part 5: The Boost Libraries

Introduction to Boost

  • What is Boost?
  • Obtaining and installing Boost
  • Overview of the Boost libraries

Common Boost Libraries

  • boost::tuple
  • boost::any
  • boost::ref
  • The Boost smart pointers
  • boost::bind
  •  
 
Course Updates & Newsletter
 
 

Receive the latest version of this course by email & subscribe to our Newsletter



Error
Google Apps Script
TypeError: Cannot call method "getEvents" of null. (line 22, file "Code", project "C++ training course")

CONTACT
0800 028 6400

enquiries@jbinternational.co.uk

SHARE

Corporate Policies     Terms & Conditions
JB International Training Ltd  -  Company number 08458005

Registered address 1345 High Road, London, N20 9HR