Preferred method of contact:

C++ Best Practices and Design Patterns

COURSE TYPE

Intermediate

Course Number

397

Duration

4 Days

PDF Add to WishList

Greatly improve the effectiveness of your programming efforts by implementing C++ best practices, proven techniques, and design patterns. In this training course, you learn when to use the new C++ 11/14 features, how to use off-the-shelf libraries and tools, how to produce great C++ code, and how to increase your productivity by combining tools, idioms, syntax, and libraries.

You Will Learn How To

  • Design and implement efficient object-oriented solutions using C++
  • Improve code quality using design patterns
  • Modify a poorly structured application to increase flexibility, robustness, and efficiency
  • Build robust libraries using namespaces, templates, and exceptions

Important Course Information

Requirements:

  • At least six months of C++ programming experience
  • You should understand the following as implemented in C++:
    • Classes and objects
    • Inheritance
    • Polymorphism or virtual functions
    • Function overloading

Course Outline

  • Introduction to Object-Oriented Development

OO fundamentals

  • Inheritance, encapsulation and polymorphism
  • Classes, objects and attributes
  • Associations, messages and methods
  • Interfaces and abstract classes

Using the Unified Modeling Language

  • Characteristics of UML
  • Mapping UML into C++

Exploiting development tools

  • Automating the life cycle with CASE tools
  • Code generation and reverse engineering
  • Debuggers and browsers
  • Design Patterns

Introducing design patterns

  • The motivation for design patterns
  • Categories of patterns: creational, behavioural and structural
  • Describing design patterns

Putting patterns to work

  • Synchronising multiple views with the Observer pattern
  • Handling recursive data structures with the Composite pattern
  • Minimising code duplication with the Template Method pattern
  • Managing object creation with the Singleton pattern
  • Decoupling object creation with Factory pattern
  • Separating algorithms from data structures with the Visitor pattern
  • Using the ISO Standard C++ Library

The Standard Template Library (STL)

  • The structure of the STL
  • Declaring and populating sequence and associative containers
  • Accessing containers using iterators
  • Applying standard and user-supplied algorithms
  • Using function object and lambda expressions

The iostream library

  • Basic input/output
  • Formatting textual output
  • Handling errors in input data
  • Wide character types and internationalisation

The thread library

  • Creating and managing threads
  • Handling exclusive access to shared data
  • Storage Management

Managing memory

  • Recognising and reducing memory overhead
  • Preventing memory leaks with the unique_ptr and shared_ptr templates
  • Overloading operator new and operator delete
  • Writing and using smart pointers

File storage

  • Preparing classes for simple file storage
  • Storing and retrieving objects using Boost serialisation libraries
  • Writing Better C++

Increasing reusability

  • Avoiding name clashes using namespaces
  • Using templates for type-safe reusability

Improving robustness and efficiency

  • Strengthening encapsulation by consistent and appropriate use of const
  • Sharing state between lightweight objects
  • Understanding r-value references and move semantics
  • Avoiding C++ Traps and Pitfalls

Things you need to do — and why

  • Virtual destructors
  • Assignment operators and copy constructors

Features to handle with care

  • Friends vs. public members
  • Runtime-type information vs. virtual member functions
  • Multiple and virtual inheritance
Show complete outline
Show Less

Convenient Ways to Attend This Instructor-Led Course

Hassle-Free Enrolment: No advance payment required to reserve your seat.
Tuition Fee due 30 days after you attend your course.

In the Classroom

Live, Online

Private Team Training

In the Classroom — OR — Live, Online

Tuition Fee — Standard: £2095  

5 - 8 Dec (4 Days)
9:00 AM - 4:30 PM GMT
London / Online (AnyWare) London / Online (AnyWare) Reserve Your Seat

How would you like to attend?

Live, Online
In-Class

17 - 20 Apr (4 Days)
9:00 AM - 4:30 PM BST
London / Online (AnyWare) London / Online (AnyWare) Reserve Your Seat

How would you like to attend?

Live, Online
In-Class

28 - 31 Aug (4 Days)
9:00 AM - 4:30 PM BST
London / Online (AnyWare) London / Online (AnyWare) Reserve Your Seat

How would you like to attend?

Live, Online
In-Class

Guaranteed to Run

Private Team Training

Enroling at least 3 people in this course? Consider bringing this (or any course that can be custom designed) to your preferred location as a private team training.

For details, call 0800 282 353 or Click here »

Tuition Fee

Standard

In Classroom or
Online

Standard

£2095

Private Team Training

Contact Us »

Course Tuition Fee Includes:

After-Course Instructor Coaching
When you return to work, you are entitled to schedule a free coaching session with your instructor for help and guidance as you apply your new skills.

After-Course Computing Sandbox
You'll be given remote access to a preconfigured virtual machine for you to redo your hands-on exercises, develop/test new code, and experiment with the same software used in your course.

Free Course Exam
You can take your Learning Tree course exam on the last day of your course or online at any time after class and receive a Certificate of Achievement with the designation "Awarded with Distinction."

Prev
Next

Training Hours

Standard class hours:
9:00 a.m. - 4:30 p.m.

Last day class hours:
9:00 a.m. - 3:30 p.m.

Free Course Exam – Last Day:
3:30 p.m. - 4:30 p.m.

Each class day:
Informal discussion with instructor about your projects or areas of special interest:
4:30 p.m. - 5:30 p.m.

AFTERNOON START class hours:
2:00 p.m. - 9:30 p.m.


Last day class hours:
2:00 p.m. - 8:30 p.m.


Free Course Exam – Last Day:
8:30 p.m. - 9:30 p.m.


Each class day:
Informal discussion with instructor about your projects or areas of special interest
9:30 p.m. - 10:30 p.m.

“The Learning Tree Course I attended provided me with a very clear and comprehensive introduction to the subject. The content was thorough and the instructor first class”.

- P. Rice, Sr. Systems Analyst
Canada Revenue Agency

Prev
Next
Chat Now

Please Choose a Language

Canada - English

Canada - Français