Live Chat
Monday - Friday 8am - 6pm EST Chat Now
Contact Us
Monday - Friday 8am - 8pm EST 1-866-716-6688 Other Contact Options

Cart () Loading...

    • Quantity:
    • Delivery:
    • Dates:
    • Location:


Introduction to C++ Programming (TTE9700)

C++ Programming Training Series.

GK# 7389

Course Overview


Introduction to C++ Programming / Intensive C++ is a skills-focused, hands-on C++ training course geared for experienced programmers who need to learn C++ coupled with sounds coding skills and best practices for OO development.  Students will leave this course armed with the required skills to put foundation-level C++ programming skills right to work in a practical environment. 

The central concepts of C++ syntax and style are taught in the context of using object-oriented methods to achieve reusability, adaptability and reliability. Emphasis is placed on the features of C++ that support abstract data types, inheritance, and polymorphism. Students will learn to apply the process of data abstraction and class design. Practical aspects of C++ programming including efficiency, performance, testing, and reliability considerations are stressed throughout. Comprehensive hands on exercises are integrated throughout to reinforce learning and develop real competency.


  • Delivery Format:
  • Date:
  • Location:
  • Access Period:


What You'll Learn

  • Working within an engaging, hands-on learning environment, attendees will explore:
  • Writing procedural programs using C++
  • Using private, public and protected keywords to control access to class members
  • Defining a class in C++
  • Writing constructors and destructors
  • Writing classes with const and static class members
  • Overloading operators
  • Implementing polymorphic methods in programs
  • Writing programs using file I/O and string streams
  • Using manipulators and stream flags to format output
  • Using the keyword template to write generic functions and classes
  • Writing programs that use generic classes and functions
  • Writing programs that use algorithms and containers of the Standard Library
  • Using algorithms and containers of the Standard Library to manipulate string data
  • Using try() blocks to trap exceptions
  • Using catch() blocks to handle exceptions
  • Defining exceptions and using throw to trigger them


Viewing outline for:

Virtual Classroom Live Outline

Session: Inheritance and Polymorphism

  • Inheritance Concept
  • Inheritance in C++
  • Protected Members
  • Base Class Initializer List
  • Composition
  • Member Initialization List
  • Order of Initialization
  • Inheritance vs. Composition
  • Summary – Inheritance
  • A Case for Polymorphism
  • Dynamic Binding
  • Pointer Conversion in Inheritance
  • Polymorphism Using Dynamic Binding
  • Virtual Function Specification
  • Invoking Virtual Functions
  • VTable
  • Virtual Destructors
  • Abstract Class Using Pure Virtual Function
  • Employee as an Abstract Class
  • Heterogeneous Collections
  • Summary – Polymorphism

Session: ANSI C++ Library

  • Hello ANSI C++
  • Namespaces
  • ANSI C++ String Class

Session: Templates

  • General Purpose Functions
  • Macros
  • Function Templates
  • Template Parameters
  • Template Parameter Conversion
  • Function Template Problem
  • Generic Programming
  • General Purpose Classes
  • Class Templates
  • Array Class Implementation (array.h)
  • Using the Array Template
  • Template Parameters
  • Class Template Instantiation
  • Non Type Parameter Conversion
  • Standard Template Library
  • STL Components
  • Generic Programming
  • STL Elements of a Simple Program
  • Simple STL Program
  • Map Container

Session: Input/Output in C+

  • Input/Output in C++
  • Built-in Stream Objects
  • Output Operator <<
  • Input Operator >>
  • Character Input
  • String Input
  • Formatted I/O
  • Streams Hierarchy (Simplified)
  • File I/O
  • File Opening
  • Integer File Copy
  • Character File Copy
  • Overloading Stream Operators
  • Implementing Overloaded Stream Operators

Session: Practical Aspects of C++ Programming

  • Interfacing C++ to Other Languages
  • Calling C from C++
  • _cplusplus Macro
  • Calling C++ from C
  • Interface Module for Stack Class
  • Namespace Collisions
  • ANSI Namespace
  • Reliability Philosophies of Languages
  • Prototypes and Type Checking
  • Constant Types
  • Access Control in C++
  • Reviews and Inspections
  • Inspections and C++
  • Testing Strategies for C++
  • Performance Considerations
  • Class Libraries

Session: Advanced Polymorphism and Inheritance

  • Good Class Design
  • String Class
  • Public Inheritance
  • Public Inheritance Problems
  • Inheritance and Semantics
  • Private Inheritance
  • Composition
  • Composition vs. Private Inheritance
  • Templates vs. Inheritance
  • Protected Inheritance
  • Implementation EncapsulationInterface Inheritance

Session: Exception Handling

  • Exception Handling
  • try and catch
  • Exception Flow of Control
  • Context and Stack Unwinding
  • Handling Exceptions in best Context
  • Benefits of Exception Handling
  • Unhandled
  • Exceptions
  • Clean UpMultiple Catch Handlers

Session: Runtime Type Information

  • Runtime Type and Polymorphism
  • type_info Class
  • typeid Operator
  • Compiler Options
  • Safe Pointer Conversions
  • Dynamic Cast
  • New C++ Style Casts
  • Static Cast
  • Reinterpret Cast
  • Const Cast

Session: Inheritance Hierarchies and Multiple Inheritance

  • Class Hierarchy in Smalltalk
  • Smalltalk Class Hierarchy (Simplified)
  • Collection Classers
  • Multiple Inheritance Solution
  • Basic Derivation
  • Ambiguities in Multiple Inheritance
  • Resolving Ambiguity
  • Duplicate Subobjects
  • Virtual Base Classes

Session: Applications of C++ Concepts

  • Orthodox Canonical Form (Review)
  • Object Validation
  • String Class
  • Smart Strings
  • Reference Counting
  • Reference Counting Rules
  • Smart String Pointer
  • Generic Smart Pointers
  • Constructing Smart Pointers
  • Smart Pointer Difficulties

Session: An Overview of Templates

  • Overloading Functions
  • Template Functions
  • Specializing a Template Function
  • Disambiguation under Specialization
  • Template Classes
  • An Array Template Class
  • Instantiating a Template Class Object
  • Friends of Template Classes
  • Templates with Multiple Type Parameters
  • Non Class-type Parameters for Template Classes
  • Comments Regarding Templates
  • Templates and Inheritance

Session: Overview of STL

  • Perspective
  • History and Evolution
  • New Features
  • The Standard Template Library
  • Generic Programming
  • Design Goals
  • Header Files
  • STL Components
  • Containers
  • Algorithms
  • Iterators
  • Compiling STL Code

Session: Examples from STL

  • vector
  • Vector.cpp
  • list
  • List.cpp
  • map
  • Map.cpp
  • set
  • Set.cpp
  • multiset
  • Multiset.cpp
  • find
  • FindVector.cpp
  • find – list
  • merge
  • Overriding the Default Comparison
  • Iterators
  • Iterators.cpp
  • Functions
  • Functions.cpp
  • Function Objects
  • FunctionObject.cpp

Session: STL Containers

  • Vectors
  • Vector.cpp
  • Vector Operations
  • Typedefs
  • Deques
  • deque as Stack
  • deque Functionality
  • Lists
  • Generic Programming
  • Tradeoff with Lists
  • List Memory Allocation
  • list Functionality
  • Associate Containers
  • Sets
  • Sets with User Defined Objects
  • Multisets (Bags)
  • Maps
  • Multimaps

Session: STL Iterators

  • Pointers
  • Template Version
  • String Version
  • A Generalization of Pointers
  • STL Iterators
  • Input Iterators
  • Output Iterators
  • Forward Iterators
  • Bidirectional Iterators
  • Random Access Iterators


Viewing labs for:

Virtual Classroom Live Labs

This course is about 50% hands-on lab and 50% lecture, with extensive programming exercises designed to reinforce fundamental skills and concepts taught throughout the course.  Throughout the course students will be led through a series of progressively advanced topics, where each topic consists of lecture, group discussion, comprehensive hands-on lab exercises, and lab review. This course is “skills-centric”, designed to train attendees in essential object oriented, intermediate and beyond level C++ development skills, coupling the most current, effective techniques with the soundest coding practices. 



Practical hands-on prior programming experience and knowledge is required.

Who Should Attend


This is an introductory-level C++ programming course designed for developers with experience programming in C or other languages.

Follow-On Courses

Course Delivery

This course is available in the following formats:

Virtual Classroom Live

Experience expert-led online training from the convenience of your home, office or anywhere with an internet connection.

Duration: 8 day

Request this course in a different delivery format.