Experience Embedded

Professional Training, Consulting and Project Support

C++ Advanced: Extended Programming Techniques for C++ Developers

In view of the increase in software complexity, many applications benefit from advanced C++ constructs; additional support is provided by modifications and extensions of the current C++ standard.

  • Content
     
  • Objectives
  • Participants
  • Requirements

You make efficient use of templates and exceptions. You have extensive knowledge of the Standard Template Library (STL). You implement advanced object-oriented concepts and designs with C++, even in combination with C++ multithreading. You are able to optimize existing and new applications as regards performance and consumption behavior.

The C++ advanced training addresses programmers, software developers, software designers and software architects.

Solid knowledge of the C++ basics as xx in our training "C++: Object-oriented Programming".

Introduction

  • C++ history
  • Basic compiler functionality
  • Practical tips: Helpful online links

C++ Basics - Short Summary

  • Keywords
  • Variable categories, types, alignment
  • Classes and objects
  • Constructor types and destructor
  • Operators with overload
  • Function pointers in classes
  • Strings and streams
  • Class relations (association, self-association, aggregation, composition, inheritance, multiple inheritance and alternatives)
  • Interface concept with strictly virtual functions
  • Exercise: Comprehending the given SW architecture, you get to know the builder pattern, implement classes, composition, inheritance, and test these automatically using the TDD process (test driven development).
  • Doing so, you consider quality aspects like object-oriented programming, modularization, reusability and extendability

Exceptions

  • Exception handling - definition and programming
  • Exception classes and hierarchies
  • User exceptions
  • C++ standard exceptions
  • Practical tips: Concepts and guidelines
  • Exercise: Integrating flexible exception handling in the exercise application

Runtime Type Identification (IRTTI)

  • RTTI - definition and programming
  • type_info class
  • Relation to exception handling
  • Applications and consequences in use

New Style Casts

  • Static, dynamic, const and reinterpret cast
  • The right choice for use
  • Relation to RTTI and exception handling

Memory Management

  • Memory segments (BSS block started by symbol, heap, stack)
  • Comparison and assessment of data segments
  • Dynamic memory management with new and delete
  • Overload (local and global) of new and delete
  • Algorithms
  • Virtual destructor
  • Placement new
  • Relation to exception handling
  • Smart pointers (also from the STL)
  • Practical tips: Identifying risks and avoiding pitfalls

Template Functions and Template Classes

  • Basic functionality
  • Template functions, template classes and their application
  • Examples of template classes
  • Inheritance and interfaces with template classes
  • Assembler, memory and runtime analysis and optimization
  • Containers/ algorithms in STL style
  • Runtime vs. compile time polymorphism
  • Perfect forwarding with templates
  • Variadic template functions and template classes
  • Alias templates
  • Practical examples for template classes
  • Exercise: Applying the observer pattern in the design of the application and implementing it based on an own, container-type template class

STL Standard Template Library

  • Containers, container adapters
  • Iterators
  • Algorithms, function objects
  • Memory allocator class
  • Practical tip: Overview of all STL container elements and their connection
  • Exercise: Applying the observer pattern in the design of the application and implementing it based on an STL container class

Multithreading and Atomic Datatypes

  • Multithreading - basic concepts
  • Threads, mutex, condition variable, future
  • Applying the mechanisms
  • Exercise: Adapting the application to a timer and controlling it through a thread, using an additional operating system abstraction with wrapper classes

Regular Expression

  • Functionality and application
  • regex library
  • Practical examples

Efficiency

  • Optimization aspects and consumption behavior: data, program memory and CPU processing time
  • Overhead minimization and performance maximization
  • Checklist - assessment of the key language constructs
  • Practical tip: Online compilers

Typical Pitfalls and Popular Idioms (PIMPL, RAII, NVI, ...)

  • RAII (resource acquisition is initialization), resource wrapper
  • NVI (non-virtual interfaces)
  • PIMPL (pointer to implementation)
  • Handling self-assignment in assignment operator
  • Practical tips: Further C++ idioms

Exercises in the C++ Advanced Training

  • You will use Microsot Visual Studio for implementing the entire exercise (watch application).

MicroConsult Plus:

  • All participants have the following options to further use their exercises and the solutions developed by MicroConsult from this workshop:
  • You take the files with you on a free USB stick provided by MicroConsult, or …
  • You e-mail the files to your account, or …
  • You get access to file download on request.
  • You get the C++ program code and the UML model of the watch application.
  • You get all examples for C++ in electronic format and can easily adjust them to your development environment.
  • You get a helpful notation overview for UML (Unified Modeling Language) in DIN-A3 format.


The price includes lunch,

drinks, training documentation and certificate.


Information for HR

You can book up to 5 participants on one training with our online order form.
If you wish to book more participants on several trainings, please contact us!
Please also note our bonus program when booking several trainings and/or participants at once.


Information for HR

Related training

C++ Schulung für Fortgeschrittene: Weiterführende Programmiertechniken für C++ Entwickler
Training Code: C++/FOR


Related training

Trainings

Price *Duration
1.980,00 €4.5 days
Training code: E-C++/FOR

* All prices are exclusive of applicable VAT.


> Registration form download (PDF)
> Training details as PDF

Inhouse Training

In customized workshops, we integrate your specific project tasks and our training program, considering your requirements as regards content, time, location, duration, technical environment and knowledge transfer methodology.

Please contact us for further information or an individual quotation.

> Training details as PDF

Coaching

Unsere Coaching-Angebote bieten den großen Vorteil, dass unsere Experten ihr Wissen und ihre Erfahrungen direkt in Ihren Lösungsprozess einbringen und damit unmittelbar zu Ihrem Projekterfolg beitragen.

Für Ihre Anfrage oder weiterführende Informationen stehen wir Ihnen gern zur Verfügung.

C++ Advanced: Extended Programming Techniques for C++ Developers

Content

Introduction

  • C++ history
  • Basic compiler functionality
  • Practical tips: Helpful online links

C++ Basics - Short Summary

  • Keywords
  • Variable categories, types, alignment
  • Classes and objects
  • Constructor types and destructor
  • Operators with overload
  • Function pointers in classes
  • Strings and streams
  • Class relations (association, self-association, aggregation, composition, inheritance, multiple inheritance and alternatives)
  • Interface concept with strictly virtual functions
  • Exercise: Comprehending the given SW architecture, you get to know the builder pattern, implement classes, composition, inheritance, and test these automatically using the TDD process (test driven development).
  • Doing so, you consider quality aspects like object-oriented programming, modularization, reusability and extendability

Exceptions

  • Exception handling - definition and programming
  • Exception classes and hierarchies
  • User exceptions
  • C++ standard exceptions
  • Practical tips: Concepts and guidelines
  • Exercise: Integrating flexible exception handling in the exercise application

Runtime Type Identification (IRTTI)

  • RTTI - definition and programming
  • type_info class
  • Relation to exception handling
  • Applications and consequences in use

New Style Casts

  • Static, dynamic, const and reinterpret cast
  • The right choice for use
  • Relation to RTTI and exception handling

Memory Management

  • Memory segments (BSS block started by symbol, heap, stack)
  • Comparison and assessment of data segments
  • Dynamic memory management with new and delete
  • Overload (local and global) of new and delete
  • Algorithms
  • Virtual destructor
  • Placement new
  • Relation to exception handling
  • Smart pointers (also from the STL)
  • Practical tips: Identifying risks and avoiding pitfalls

Template Functions and Template Classes

  • Basic functionality
  • Template functions, template classes and their application
  • Examples of template classes
  • Inheritance and interfaces with template classes
  • Assembler, memory and runtime analysis and optimization
  • Containers/ algorithms in STL style
  • Runtime vs. compile time polymorphism
  • Perfect forwarding with templates
  • Variadic template functions and template classes
  • Alias templates
  • Practical examples for template classes
  • Exercise: Applying the observer pattern in the design of the application and implementing it based on an own, container-type template class

STL Standard Template Library

  • Containers, container adapters
  • Iterators
  • Algorithms, function objects
  • Memory allocator class
  • Practical tip: Overview of all STL container elements and their connection
  • Exercise: Applying the observer pattern in the design of the application and implementing it based on an STL container class

Multithreading and Atomic Datatypes

  • Multithreading - basic concepts
  • Threads, mutex, condition variable, future
  • Applying the mechanisms
  • Exercise: Adapting the application to a timer and controlling it through a thread, using an additional operating system abstraction with wrapper classes

Regular Expression

  • Functionality and application
  • regex library
  • Practical examples

Efficiency

  • Optimization aspects and consumption behavior: data, program memory and CPU processing time
  • Overhead minimization and performance maximization
  • Checklist - assessment of the key language constructs
  • Practical tip: Online compilers

Typical Pitfalls and Popular Idioms (PIMPL, RAII, NVI, ...)

  • RAII (resource acquisition is initialization), resource wrapper
  • NVI (non-virtual interfaces)
  • PIMPL (pointer to implementation)
  • Handling self-assignment in assignment operator
  • Practical tips: Further C++ idioms

Exercises in the C++ Advanced Training

  • You will use Microsot Visual Studio for implementing the entire exercise (watch application).

MicroConsult Plus:

  • All participants have the following options to further use their exercises and the solutions developed by MicroConsult from this workshop:
  • You take the files with you on a free USB stick provided by MicroConsult, or …
  • You e-mail the files to your account, or …
  • You get access to file download on request.
  • You get the C++ program code and the UML model of the watch application.
  • You get all examples for C++ in electronic format and can easily adjust them to your development environment.
  • You get a helpful notation overview for UML (Unified Modeling Language) in DIN-A3 format.

Wishlist


No trainings