logo

C++ Course

course overview

Click to View dates & book now

Overview

C++ is undoubtedly one of the most widely-used programming language for implementing object-oriented systems. The C++ language is based on the popular C language. The C++ Programming course provides thorough practical and theoretical coverage of the C++ language for the experienced application programmer who has little or no recent C++ experience.

This course helps eliminate misconceptions and poor programming practices that can cause so many problems, by focusing on features of the language and standard library that enforce good practice and encourage clear and robust code.

This is a highly practical course which uses a mix of tuition and practical sessions for each technical chapter designed to reinforce the C++ syntax and object-oriented programming techniques covered in the course.

Skills Gained

At the end of this course you will be able to:

  • Understand the key concepts and vocabulary of object orientation
  • Use fundamental and composite data types
  • Define and use classes
  • Write class member functions
  • Use pointers and dynamic memory
  • Use constructors and destructors
  • Write code that is efficient and robust
  • Build new classes from other classes using aggregation and association
  • Build new classes from other classes using inheritance
  • Use container classes, including template classes
  • Use operator overloading
  • Design and write code with polymorphic behaviour

Prerequisites

Please note: Before attending this class delegates must have a Microsoft account (signing up one is free). The instructions on how to set up a Microsoft account can be found here.

Outline

Course Introduction

  • Course Prerequisites
  • Course Objectives
  • Course Delivery
  • Course Practicals
  • Course Structure

C ++ Programs

  • Key features of C++
  • Identifiers and keywords
  • Simple declarations, expressions and statements
  • Basic I/O
  • Layout
  • Guidelines

Fundamental Data Types

  • Built-in types
  • Integer numbers
  • Floating Point numbers
  • Characters
  • Booleans
  • Assignment
  • Compound Assignment
  • Defining constants
  • Type conversions

Composite Data Types

  • Defining and using enumerations
  • Built-in arrays and their limitations
  • Using the vector class
  • Built-in strings as character arrays
  • Using the string class
  • Defining and using structures

Control Flow

  • Simple and compound statements
  • Selection with if else and switch statements
  • Conditional expressions
  • Looping with while and for statements

Functions

  • Overloading
  • Default arguments
  • Scope issues
  • Pass by copy
  • Pass by reference
  • Inline functions
  • Header files and source files
  • Pitfalls and guidelines

Object Concepts

  • Object behaviour
  • Object state
  • Object identity, Object-oriented programming
  • Classes
  • Encapsulation

Using Classes

  • Associating functionality with data
  • Class definitions
  • Public and private
  • Queries functions and modifier functions
  • Struct vs class

Pointers

  • Concepts and syntax
  • Pointers to structured types
  • Pointers for encapsulated objects
  • Null pointers
  • Pointers vs. references

Implementing Classes

  • Defining member functions
  • Object identity
  • The this pointer
  • Initialisation
  • Constructors
  • Default constructors
  • Member Initialisation
  • Inlining member functions

Operator Functions

  • Operators as functions
  • Global operators
  • Member operators
  • I/O stream operators

Object Relationships

  • Associations and their implementation
  • Compositions and their implementation
  • Navigation
  • Delegation
  • Multiplicity

Dynamic Memory

  • The need for dynamic memory
  • Dynamic objects
  • Using new and delete
  • Dynamic arrays
  • Using new[] and delete[]
  • Destructors

More Pointers

  • Pointers and arrays
  • Pointer arithmetic
  • Pointers as array iterators
  • Pointers and const

Containers

  • Container concepts and classification
  • Template classes
  • Standard containers
  • Vector
  • List
  • Iterators
  • Template functions
  • Algorithms

Copying

  • Copy construction
  • Copy assignment
  • Compiler generated copy behaviour
  • Problems
  • Solutions
  • Reducing Copying
  • Restricting Copying

Class Relationships

  • Extension of existing classes using inheritance
  • Polymorphic behaviour
  • Type substitutability
  • Abstract base classes

Inheritance

  • Protected members
  • Substitutability
  • Scoping
  • Base class initialisation
  • Order of object construction and destruction

Polymorphism

  • Virtual destructors
  • Pure virtual functions
  • Using polymorphism through pointers and references

The Way Ahead

  • Support after this course
  • Further C++ information sources
  • Appendices including C++ 11 Language Enhancements

Talk to an expert

Thinking about Onsite?

If you need training for 3 or more people, you should ask us about onsite training. Putting aside the obvious location benefit, content can be customised to better meet your business objectives and more can be covered than in a public classroom. Its a cost effective option. One on one training can be delivered too, at reasonable rates.

Submit an enquiry from any page on this site and let us know you are interested in the requirements box, or simply mention it when we contact you.

All $ prices are in USD unless it’s a NZ or AU date

SPVC = Self Paced Virtual Class

LVC = Live Virtual Class

Please Note: All courses are availaible as Live Virtual Classes

Trusted by over 1/2 million students in 15 countries

Our clients have included prestigious national organisations such as Oxford University Press, multi-national private corporations such as JP Morgan and HSBC, as well as public sector institutions such as the Department of Defence and the Department of Health.