Course Description

C++ is the object oriented superset of ANSI C. This course provides students with a comprehensive study of the C++ Programming Language. The course stresses the object paradigm including classes, inheritance, virtual functions, and templates in the development of C++ programs. Lab exercises reinforce the lectures.



5 days


Target Audience

Anybody who has the need to write programs in the C++ language including programmers, engineers, scientists, or other technical support personnel will benefit from this course.


Course Prerequisites

Students should have taken the Software Development for Non-Programmers and Introduction to C courses or have equivalent knowledge. These skills are also taught in the following courses:

If you have any questions or doubts as to whether you meet the pre-requisites for this course, or indeed are wondering which course best suits you, please consult with us to discuss your suitability for course attendance.


Suggested Follow on Courses

Please contact us for further details.


Course Content

Chapter 1: Perspective

The Software Crisis

Design Techniques

Large Software Systems

Roots of Object Technology

What Is Object-Oriented Programming?

C++ and Object-Oriented Programming

Why C++?

Features of C++

Pros and Cons of C++


Chapter 2: The Language of Object-Orientation

What Is an Object?

What Is a Class?


Data Hiding

The Public Interface

Relationships Among Classes



Object-Oriented Design


Chapter 3: C vs. C++



Simple Output

Simple Input

Definitions Near to First Use

Function Prototypes

The inline Specifier


Structure Members

The Reference Type

Overloading Function Names

Default Parameters

The Scope Resolution Operator


Operators new and delete

The bool Data Type

The string Data Type


Chapter 4: Fundamentals of Classes

Data Types

User Defined Data Types

Using the Class Concept

Defining a Class

public and private Access Levels

The Scope Resolution Operator ::

Using Class Objects Like Built-in Types



Member Initialization Lists


Array of Objects


The this Pointer

Passing Objects to Functions

Returning Objects From Functions

static Class Members


Chapter 5: Operator Overloading


Rules for Operator Overloading

Rationale for Operator Overloading

Overloading Member Functions

Overloading Non-Member Functions

friend Functions

The Copy Constructor

The Assignment Operator

Overloading [ ]

Overloading Increment and Decrement Operators

const Objects and References


Chapter 6: Composition of Classes


Composition of Classes

The Point Class

The Line Class

Member Initialization Lists

An Application With Composition

The Copy Constructor under Composition

operator= under Composition


Chapter 7: Inheritance


Public Base Classes

The protected Access Level

Member Initialization Lists

What Isn’t Inherited

Assignments Between Base and Derived Objects

Compile-Time vs. Run-Time Binding

virtual Functions


virtual Destructors

Pure virtual Functions

Abstract Base Classes

An Extended Inheritance Example


Chapter 8: I/O in C++

The iostream Library

Predefined Streams

Overloading operator<<

Overloading operator>>


Stream States

Formatted I/O

Disk Files

Reading and Writing Objects


Chapter 9: Advanced Topics

Template Functions

Template Classes

Multiple Inheritance

User-Defined Conversions

Data Structures

An Iterator Class



Chapter 10: Introduction to the Standard Template Library


The Standard Template Library

Design Goals

STL Components


Example: vector

Example: list

Example: set

Example: map

Example: find

Example: merge

Example: accumulate

Function Objects



Also Discussed:



Environmental Considerations

A Sample C Program

Variables and Data Types


Example of a Program Using an int Array

Components of a C Program

C Operators

Examples of the Operators

Control Structures


Function Prototypes

Simple I/O

More I/O in C

The printf Function

The scanf Function

The Preprocessor

Conditional Compilation

Avoiding Multiple Inclusion for the Same File

Aggregates in C

Data Types Revisited

Aggregate Types



Structures and Functions

Bit Fields

Enumeration Types

Pointers in C

Fundamental Concepts

Pointer Operations

Using Pointers to Alter a Function Argument

Using Pointers for Array Traversal

Pointer Arithmetic

Sending an Array to a Function

Command Line Arguments

Pointers vs. Arrays

Sending an Aggregate to a Function

Summary of the Uses of Pointers


See more Programming Languages courses