Advanced C++ Development Techniques

call us now - 0845 757 3888
  • view dates / book course
  • course description
  • blogs

Print course outline | Download Word document | Link to page: http://www.qa.com/LGCPPAV2

Course dates

Currently scheduled dates for this training course
LocationMayJunJulAugview later dates
LocationSepOctNovDecview earlier dates
London
  1. Currently scheduled dates for this training course
    Tabernacle Street, EC2 |-|-|16|-show prices/book
    LocationSepOctNovDecview earlier dates
    Tabernacle Street, EC2 |-|8|-|3show prices/book
  2. Tabernacle Street, EC2 location information and directions

    hide-prices
    16 Jul 5 or more places available £2,575 exc VAT

    orenquire about this course

    08 Oct 5 or more places available £2,575 exc VAT

    orenquire about this course

    03 Dec 5 or more places available £2,575 exc VAT

    orenquire about this course

    Advanced C++ Development Techniques training in Tabernacle Street, EC2

Print course outline | Download Word document | Link to page: http://www.qa.com/LGCPPAV2

Overview

C++ is the standard language for implementing object-oriented designs, but although based on C, C++ introduces many subtle syntactic and design issues. For developers whose C++ experience goes back further, many of the changes as a result of standardisation make standard C++ a very different programming environment.

This course will keep the audience abreast of these changes. It covers four main areas: new and advanced language features; using the standard library; implementing object-oriented concepts and patterns in C++ ; effective C++ programming techniques and idioms. It also suggests ways to maximise efficiency, code quality, and reusability.

Delegates will gain a greater understanding of the capabilities and potential pitfalls of the C++ language and will be more able to use C++ language features to write robust, quality software and you will also have a good grounding to make the best use of specific component technologies, such as COM and CORBA.

This a comprehensive five-day course with a combination of lectures and practical sessions for each chapter to reinforce the topics covered throughout the course. The practicals use code skeletons, so that you can concentrate on specific C++ features.

The course includes an appendix on the C++ 11 Standard Enhancements

Prerequisites

  • You must have solid and genuine experience of C++ including class definitions and member functions, constructors and destructors, references, virtual functions and new and delete operators.
  • Ideally, you will have attended one of our C++ programming courses and have been using C++ solidly for at least six months. You should also have an appreciation of object-oriented principles, possibly from attending the Object-Oriented Software Development or an object-oriented analysis and design course.

Delegates will learn how to

  • Describe advanced inheritance issues, such as private inheritance, multiple inheritance, and virtual base classes
  • Use advanced C++ language features and programming techniques, such as Run-Time Type Identification (RTTI), smart pointers and delegation
  • Use different memory management techniques and strategies to customise and optimise memory usage in a C++ program
  • Design, implement and use template functions and template classes
  • Take advantage of the standard C++ library
  • Design and use container classes and iterators
  • Use C++ exceptions to simplify error handling in large programs

Course Outline

Evolution of Standard C++

  • ISO C++ ; Changes to the core language; Overview of the standard library

C++ and OO Refresher

  • Abstraction and encapsulation; Composition and association; Inheritance and polymorphism; Patterns and idioms

Copying and Conversions

  • The staticcast, dynamiccast, constcast and reinterpretcast keyword casts; Logical vs physical const-ness and the mutable keyword; Converting constructors and the explicit keyword; User defined conversion operators; Copy construction and assignment

Scope

  • Static class members; The Singleton pattern; Nested classes; Nested class forward declarations; The Cheshire Cat idiom; Namespaces

Delegation Techniques

  • The Object Adapter pattern; The Null Object Pattern; The Proxy pattern; Overloading the member access operator; Smart pointers; The Template Method pattern; Factory objects

Subscripting Techniques

  • Overloading the subscript operator; Overloading with respect to const-ness; Smart references; Multi-dimensional subscripting; Associative containers

Template Functions

  • Using and implementing generic algorithms with template functions; Overloading and specialising template functions; Template instantiation and linkage

Template Classes

  • Using and implementing generic types with templates classes; Multiple template parameters; The standard vector, list, pair, and map template classes

Iterators and Algorithms

  • The need for Iterators; The standard library (STL) iterator model; Generic algorithms using iterators; STL algorithm pitfalls; Introduction to function objects

Exception Handling

  • Classifying and handling exceptions; Catching and throwing exceptions; The standard exception class hierarchy; Uncaught exceptions; Strategies for handling exceptions

Exception Safety

  • Resource acquisition idioms for exception safety; Exceptions in constructors; Exceptions in destructors; Exception safe classes; STL exception safety guarantees

Memory Management

  • Object life cycle; Allocation failure; Customising memory allocation; Optimising allocation for a class through caching; Derivation safe allocation; Controlling timing of construction and destruction

Reference Counting

  • Reference counting shared representation; Reference counted strings for copy optimisation; Subscripting issues; Smart pointers for simple, automatic garbage collection

Inheritance Techniques

  • Subtyping vs subclassing; Abstract and concrete base classes; Inheritance scoping issues; Multiple inheritance; Virtual base classes; Interface classes; Mixin classes; Runtime type information (RTTI); Private and protected inheritance; The Class Adapter pattern

Template Techniques

  • Templating on precision; Template adapters; Default template parameters; Template specialisation; Trait classes; Member templates; Non-type template parameters; Optimising template code space

Functional Abstraction

  • Traditional callbacks using function pointers; The Command pattern; More on function objects; Member function pointers

Print course outline | Download Word document | Link to page: http://www.qa.com/LGCPPAV2

Related blogs

vSphere 5 CLI reference poster

Posted by Bryan O'Connor on 24 May 2012

The vCAP-DCA 5 is coming, and having a look at the blue print, there will be command line and as such the reference poster will be a good resource for revision

Connection Options for the vMA (VMware Management Assistant)

Posted by Bryan O'Connor on 23 May 2012

This article covers the various conn-options for the vMA

Let’s have a Fling

Posted by Bryan O'Connor on 22 May 2012

Not the type you thought, but an offering from VMware

Windows 7 Native Boot Adding the VHD to Bare Metal

Posted by Andrew Mallett on 21 May 2012

I have written before on the native boot feature of Windows 7 where it can boot to a VHD, Virtual Hard Drive. In this blog though we look at adding in a VHD to a completely clean disk with no OS ....

Microsoft Virtual Academy

Posted by Bryan O'Connor on 21 May 2012

Been on a Microsoft Offical Course and fancy some complentary information, have a look at Microsoft Virtual Academy.

See all related blogs

 
top of page
  • Apple logo
  • AppSense logo
  • cisco logo
  • citrix logo
  • compTIA logo
  • ec council logo
  • IBM logo
  • lpi logo
  • microsoft gold logo
  • novell logo
  • oracle logo
  • redhat logo
  • SAP logo
  • symantec logo
  • vmware logo
  • symantec logo
  • redhat logo
  • IBM logo