CUSTOMISED
Expert-led training for your team
Dismiss

C++ Advanced training course

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

JBI training course London UK

"A good and thorough course for advanced C++ techniques - well delivered by zoom, in a small group allowing some really one to one tutoring to take place."

ZL, Data Analyst, C++ Advanced, June 2021

Public Courses

28/10/24 - 4 days
£2950 +VAT
09/12/24 - 4 days
£2950 +VAT
20/01/25 - 4 days
£2950 +VAT

Customised Courses

* Train a team
* Tailor content
* Flex dates
From £1200 / day
EDF logo Capita logo Sky logo NHS logo RBS logo BBC logo CISCO logo
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

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
  •  
JBI training course London UK

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

5 star

4.8 out of 5 average

"A good and thorough course for advanced C++ techniques - well delivered by zoom, in a small group allowing some really one to one tutoring to take place."

ZL, Data Analyst, C++ Advanced, June 2021



“JBI  did a great job of customizing their syllabus to suit our business  needs and also bringing our team up to speed on the current best practices. Our teams varied widely in terms of experience and  the Instructor handled this particularly well - very impressive”

Brian F, Team Lead, RBS, Data Analysis Course, 20 April 2022

 

 

JBI training course London UK
 
Top 20 "Pain Points" for Data Analysts
 

Problem 11 : You have a very complex Excel spreadsheet and you want to reproduce EXACTLY the same spreadsheet in Power BI
Solution: Power BI is not Excel, it works differently and it has different strengths. In order to tackle this issue the best way is going back to the source and try to...

All 20 points are in our latest Newsletter - Delivered directly to your inbox



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.

CONTACT
+44 (0)20 8446 7555

[email protected]

SHARE

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

Registered address Wohl Enterprise Hub 2B Redbourne Avenue London N3 2BS

POPULAR

Rust training course                                                                          React training course

Threat modelling training course   Python for data analysts training course

Power BI training course                                   Machine Learning training course

Spring Boot Microservices training course              Terraform training course

Kubernetes training course                                                            C++ training course

Power Automate training course                               Clean Code training course