Consulting Training Blog Careers About Us Contact Us
All Classes Will Be Held Virtually – Live Online Intertech's Training Division has been successfully instructing professionals through virtual live online training since the advent of the smartboard. It is a proven form and offers the convenience of live questions, group interaction, and labs with an instructor looking over your shoulder. Because of this, we will continue all classes live but virtually, including Agile and Scrum instruction, so businesses and individual’s seeking professional development can keep moving forward during these unexpected times.

C++ Programming Training

Upcoming Classes

Click the Get Notified button for priority notification when a class is next scheduled.

Get Notified

On Site/Private

Can't find a class that fits right for you? Contact us to inquire about scheduling your own private class

Contact Us


Develop the ability to design and write programs in the C++ language, emphasizing object-oriented approaches to designing solutions. 

Bring This Course To You

For groups of 5 or more, let Intertech bring this course to your location. Customized versions tailored towards your objectives are also available.

Learn More


Programmers responsible for the development of advanced applications or systems programs in C++. 


This class assumes you have solid development experience in some language other than C++ (preferably C). This class is not intended for non-programmers.

Course Outline


  • Creating a Data Structure
  • Methods
  • Object Scope
  • C++ Input and Output
  • Namespaces
  • Data Abstraction
  • Enforcing Data Encapsulation
  • File Organization
  • Classes in C++
  • Objects
  • this Pointer

Constructors and Destructors

  • Debug Output
  • The Default Constructor
  • When are Constructors Called?
  • The Destructor
  • The Copy Constructor
  • Other Constructors
  • Why Did It Work Before?
  • Composition
  • The Report Class
  • Code Reuse
  • Initialization Lists


  • Inheritance
  • Bugreport
  • Protected Access Modifier
  • Access and Inheritance
  • Constructors and Inheritance
  • Initialization Lists Revisited
  • Multiple Inheritance

Virtual Functions

  • Inheritance and Assignment
  • Inside Report’s Assignment Operator
  • Using Pointers – a Quick Look at Basics
  • Class Assignment and Pointers
  • Static Binding
  • Dynamic Binding
  • Polymorphism
  • The show_rep() Function
  • Using the show_rep() Function
  • Designing Member Function Inheritance

Pure Virtual Functions

  • Bugfix and Its Relationship with Bugreport
  • Bugfix: Association with Bugreport
  • Using Bugfix with show_rep()
  • Adding Bugfix to the Hierarchy
  • Coding for the Document Class
  • Reexamining the Document Class
  • Pure Virtual Functions
  • Updated: Designing Member Function Inheritance

References and Constants

  • References
  • Displaying References
  • Changing References
  • Pass by Reference
  • Returning by Reference
  • Constant Variables
  • Constant References
  • Constant Methods

new and delete

  • new and delete
  • Array Allocation
  • The Report Class
  • Compiler Version of the Copy Constructor
  • Guidelines for Copy Constructors
  • The Report Constructors and new
  • The Report Destructor and delete
  • Virtual Destructors

Casting in C++

  • Casting: A Review
  • New Casting Syntax
  • Creating a String Class
  • The String Class
  • The Conversion Constructor
  • Expanding Our Casting Options
  • Casting Operator
  • Using the Casting Operator

Class Methods and Data

  • Class Data
  • Class Methods
  • Using the New Data
  • More on Class Methods

Overloaded Functions

  • Function Overloading
  • Using Overloaded Functions
  • Rules for Overloading
  • verloading Based on Constness
  • Default Arguments
  • Invoking Functions with Default Arguments

Overloaded Operators

  • The Basics of Overloading
  • Overloading operator+
  • Coping with Commutativity
  • Non-Commutative Operators
  • friends and Their Problems
  • The Assignment Operator
  • Overloading the <>
  • Using Date with cout

Exception Handling

  • Why Exception Handling?
  • try / catch / throw
  • Exception Classes
  • Standard Exception Hierarchy
  • Multiple catch Blocks
  • Catching Everything
  • Unhandled Exceptions
  • Exception in Constructors and Destructors
  • Designing for Exceptions

Standard Template Library

  • Class Template Concepts
  • Standard Template Library (STL) Overview
  • Containers
  • Iterators
  • Iterator Syntax
  • Non-Mutating Sequential Algorithms
  • Mutating Sequential Algorithms
  • Sorting Algorithms
  • Numeric Algorithms
  • auto_ptr Class
  • string Class

STL Containers

  • Container Classes
  • Container Class Algorithms
  • vector Class
  • Additional vector Class Methods
  • deque Class
  • list Class
  • set and multiset Classes
  • map and multimap Classes

Appendix A – Reference Sheets

  • Constants, References, and Pointers
  • Input/Output
  • this Pointer
  • The Complete Report/Document Hierarchy

Appendix B – Templates

  • Scenario
  • Designing an Array Class
  • Code for FloatArray
  • Code for IntArray
  • Templates
  • Template Syntax
  • Using Templates
  • Using Classes with Templates
  • Additional Template Features
  • Standard Template Library

Appendix C – Sample Problems

  • Banking System
  • Library Card Catalog
  • Diagrams for Banking and Library Problems
  • Object Diagram - Banking 
  • Event Trace Diagram - Banking  
  • Object Diagram – Library
  • Event Trace Diagram - Library

Appendix D – Other C++ Features

  • Namespaces
  • The static_cast and reinterpret_cast operator
  • The dynamic_cast operator
  • The const_cast operator
  • mutable Data Members
  • The bool Datatype
  • new Operator Failure

Free Resources from Intertech

C# Tutorial: Understanding C# Events

Free eBook: Agile Design Principles

Free Whitepaper: C# Exception Handling Cheat Sheet