CP02 - C++ Object Oriented Programming - 5 Days

Course Description

This class is designed for accomplished C Programmers who want to learn how to use C++ to program with Object Oriented techniques.


Pre-requisites

Previous training in C language programming is recommended.

The following topics are reviewed in the class, however, it is assumed that delegates will begin this course with some knowledge of them:

  • C Structures.
  • Constants.
  • C Keywords.
  • Unions.
  • Naming Restrictions.
  • Punctuation.
  • Scope.
  • Function Prototyping.
  • Typedefs.
  • Comments in C.
  • Case Sensitivity.
  • Declarations.
  • Initialisation.
  • Functions.
  • Pointers.
  • Externals.
  • C Expressions.


Objectives

To learn how to program using C++ and Object Orientated techniques.

Course material covers the following topics:

  • Objects.
  • Data Hiding.
  • Polymorphism.
  • Destructors.
  • Classes.
  • Storage Classes.
  • Pointers.
  • Friend Functions.
  • Abstract Classes.
  • Management of Class Source & Object Files.
  • Abstract Data Types.
  • Building Windows Applications.
  • Data Encapsulation.
  • Inheritance.
  • Constructors.
  • Scope.
  • Storage Allocation.
  • Arrays of Class Objects.
  • Friend Classes.
  • Class Libraries.


Customisation

For on-site courses (i.e. at your premises), we are more than happy to tailor the course agenda to suit your exact requirements. In many cases, we are able to build your in-house standards and naming conventions into the delivered course.


Course Details

BASIC CONCEPTS OF OBJECT ORIENTATED PROGRAMMING SKILLS
Objects.
Abstract Data Types.
Data Hiding.
Classes.
Data Encapsulation.
Inheritance Polymorphism.

Skills: Students will be able to define these terms and describe how they relate to the overall goals of object orientated programming.

BASIC CONCEPTS AND SYNTAX
C++ and ANSI C.
Declaring Classes & Objects.
Volatile Keyword.
Visibility.
C++ Operators.
Defining Constructors & Destructors.

Skills: Using hands on workshops the delegates will create and use a simple class. Students will be able to compile, link and run simple C++ programmes that use the above concepts.

CLASSES WITH POINTERS
Const Keyword.
References.
Review of Storage Allocation.
Constructors and Destructors.
Operator Overload.
Overloaded Assignment Operator.
The this Pointer.
The Copy Constructor.

Skills: Students will Create and use more complex classes. They will describe and demonstrate in C++ the difference between function calls by value and function calls by reference. They will describe the 3 main storage areas and write C++ code to create objects in each of these areas. They will also describe the difference between the overloaded assignment operator and the copy constructor.

MORE FEATURES OF CLASSES
Friend Functions.
Friend Classes.
Static Data Members.
Static Member Functions.
Pointer to Member Operators.
Arrays of Class Objects.
Dynamic Storage Allocations.
The New and Delete Operators.
C++ Preprocessor Statements.

Skills: Students will be able to use friend functions & friend classes to access data, use the new and delete operators to work with memory from the heap, use static data members and member functions, use the pointer to member operators and use the C preprocessor to avoid circular definitions in header files. In the hands on element of this module they will be using Static Variables, building a Stack, embedding an Object in a Class, using Storage Allocation.

MORE ON C++ SYNTAX
Enum Consonants.
Aggregate Types.
Scope Access Operators.
Virtual Base Classes.
Templates.
Full Syntax of A Class Definition.

Skills: In this module delegates will be learning to use more complex aspects of the C++ language.

INHERITANCE
Base & Derived Classes.
Accessibility of Members.
Member Function Overriding.
Order of Execution.
Overriding Function Overrides.
Scope Resolution.
Base Pointers & References to Derived Objects.

Skills: Students will be able to use C++ to code the basic concepts of inheritance. Workshops will enhance the concepts of Basic Class Inheritance and Creating a Stack of Strings using Inheritance.

POLYMORPHISM AND ABSTRACT CLASSES
Definition Virtual Functions.
Virtual Tables.
Virtual Destructors.

Skills: Students will be taught how to define Polymorphism, define an Abstract Class and use Virtual Functions. They will also use Virtual Tables and Virtual Destructors. Workshops will highlight the use of Virtual Functions and Abstract Classes.

CLASS LIBRARIES AND PROGRAMMING
Container Class Libraries.
Class Library Directories.
Using IDE.
Using Existing Class Libraries.
The Windows Classes.
Building a Windows Application.
Linking for Windows.

Skills: Students will be able to describe what to look for in existing class libraries and write a simple Windows application using C++. This will be reinforced with practical exercise. Students will also use the exercise to place Classes in a library.


Course Format

Practical sessions make up a large part of the course, allowing delegates to demonstrate and reinforce the lectures given.


Course Enquiry