Essential C++

This course introduces the C++ language for general use. It is a subset of our more extensive 5 day course C++-501: C++ for Embedded Developers.

The C++ language is covered in depth, aiming to overcome any fears of this large language by the covering memory and performance issues. This course will clearly demonstrate both the strengths and weaknesses of C++ versus C. Good programming practise is considered throughout this highly practical course.

This course is suitable for programmers who do not need to have in-depth knowledge of embedded programming concepts or concurrency issues. This course is also useful for Hardware Engineers needing to learn C++, for example to move onto using SystemC.

It is assumed delegates will have a working knowledge of the C programming language.

C++-303
3 days
Contact Feabhas (available for on-site delivery only)
pdf download

Course Outline

 

From C to C++:

  • Non object-oriented C++ enhancements to basic C
  • Conveniences of C++ over and above C

Introduction to Object Oriented (OO) Principles:

  • Key characteristics of OO development
  • OO techniques and the software development process

Introduction to Classes:

  • Classes & class instances
  • Methods
  • Constructors & destructors

More on Classes:

  • Inlining member functions
  • Const member functions
  • Static class members and functions
  • Arrays of classes
  • Implementing object relationships

Inheritance:

  • Building class hierarchies
  • Dynamic binding for class methods, virtual functions
  • Polymorphism

Multiple Inheritance (MI):

  • MI and interfaces

Functions and Operators:

  • Class defined conversions
  • Overloading and function selection
  • Friend functions
  • Overloading operators
  • Dynamic memory allocation revisited

Exception Handling:

  • What are exceptions?
  • Throwing an exception
  • The try block
  • Catching an exception
  • Rethrowing exceptions
  • Catch all handlers
  • Exception specifications

Templates:

  • Introducing parameterised types and functions
  • Function templates
  • Class templates

The Standard Library:

  • Introduction to the Standard Template Library

Software Structuring:

  • Structuring large scale software systems
  • Separate implementation from interface header files
  • Dealing with name conflicts
  • Linking with other languages

Course Overview

 

A 3 day course covering C++ in general 50% of the course is spent on practical work.

Course Objectives:

  • To provide an understanding of the essentials of the C++ programming language.
  • To give you practical experience of writing C++ for real systems.
  • To give you the confidence to apply these new concepts to your next project.

Delegates Will Learn:

  • The core C++ syntax and semantics
  • About memory and performance issues associated with C++

Pre-requisites:

  • A working knowledge of C

Who Should Attend?

  • Programmers who are embarking on a project using C++ for the first time.
  • Developers currently reluctant to move to C++ from C as they believe it poses too great an overhead.
  • Programmers needing to know C++ to interface to off-the shelf libraries and development tools.
  • Hardware Engineers needing to learn C++, for example to move onto using SystemC

Duration:

  • Three days.

Course Materials:

  • Delegate handbook

Related Courses:


Course Workshop:
All exercises are PC based using the latest version of Microsoft Visual Studio.