Introduction to C++ Programming | Intensive C++ Essentials

Prepare yourself with the skills to put foundation-level C++ programming skills right to work in a practical environment.

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 sound coding skills and best practices for OO development. 

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.

This “skills-centric” course is about 50% hands-on lab and 50% lecture, designed to train attendees in basic coding with C++, coupling the most current, effective techniques with the soundest industry practices. 

4 days/32 hours of instruction
Public Classroom Pricing


GSA Price: $1871.25

Group Rate: $2395

Private Group Pricing

Have a group of 5 or more students? Request special pricing for private group training today.

Download the Course Brochure

Part 1: Moving from C to C++ 

  1. New Compiler Directives
  2. Stream Console I/O
  3. Explicit Operators
  4. Standard Libraries
  5. Data Control Capabilities

Part 2: Handling Data

  1. New Declaration Features
  2. Initialization and Assignment
  3. Enumerated Types
  4. The bool Type
  5. Constant Storage
  6. Pointers to Constant Storage

Part 3:Functions 

  1. Function Prototypes and Type Checking
  2. Default Function Data Types
  3. Function Overloading
  4. Problems with Function Overloading
  5. Name Resolution
  6. Promotions and Conversions
  7. Call by Value
  8. Reference Declarations

Part 4: Operator Overloading

  1. Advantages and Pitfalls of Overloading
  2. Member Operator Syntax and Examples
  3. Class Assignment Operators
  4. Class Equality Operators
  5. Non-Member Operator Overloading
  6. Member and Non-Member Operator Functions

Part 5: Creating and Using Objects

  1. Creating Automatic Objects
  2. Creating Dynamic Objects
  3. Calling Object Methods
  4. Constructors
  5. Initializing Member consts
  6. Initializer List Syntax
  7. Allocating Resources in Constructor
  8. Destructors

Part 6: Dynamic Memory Management

  1. Advantages of Dynamic Memory Allocation
  2. Static, Automatic, and Heap Memory
  3. Free Store Allocation with new and delete
  4. Handling Memory Allocation Errors

Part 7: Controlling Object Creation

  1. Object Copying and Copy Constructor
  2. Automatic Copy Constructor
  3. Conversion Constructor

Part 8: Streaming I/O 

  1. Streams and the iostream Library
  2. Built-in Stream Objects
  3. Stream Manipulators
  4. Stream Methods
  5. Input/Output Operators
  6. Character Input
  7. String Streams

Part 9: Introduction to Object Concepts

  1. The Object Programming Paradigm
  2. Object-Orientated Programming Definitions
  3. Information Hiding and Encapsulation
  4. Separating Interface and Implementation
  5. Classes and Instances of Objects
  6. Overloaded Objects and Polymorphism

Part 10: Declaring and Defining Classes

  1. Components of a Class
  2. Class Structure
  3. Class Declaration Syntax
  4. Member Data
  5. Built-in Operations
  6. Constructors and Initialization

Part 11: Templates

  1. Purpose of Template Classes
  2. Constants in Templates
  3. Templates and Inheritance
  4. Container Classes
  5. Use of Libraries

Part 12: Strings in C++

  1. Character Strings
  2. The String Class
  3. Operators on Strings
  4. Member Functions of the String Class

Part 13: Inheritance

  1. Inheritance and Reuse
  2. Composition vs. Inheritance
  3. Inheritance: Centralized Code
  4. Inheritance: Maintenance and Revision
  5. Public, Private and Protected Members

Part 14: Exceptions

  1. Types of Exceptions
  2. Trapping and Handling Exceptions
  3. Triggering Exceptions
  4. Handling Memory Allocation Errors

Part 15: C++ Program Structure

  1. Organizing C++ Source Files
  2. Integrating C and C++ Projects
  3. Using C in C++

Part 16: Reliability Considerations in C++ Projects

  1. Function Prototypes
  2. Strong Type Checking
  3. Constant Types
  4. C++ Access Control Techniques

Part 17: Polymorphism in C++ 

  1. Definition of Polymorphism
  2. Calling Overridden Methods
  3. Upcasting
  4. Accessing Overridden Methods
  5. Virtual Methods and Dynamic Binding
  6. Virtual Destructors

Part 18: Multiple Inheritance

  1. Derivation from Multiple Base Classes
  2. Base Class Ambiguities
  3. Virtual Inheritance
  4. Virtual Base Classes

Part 19: The Standard Template Library

  1. STL Containers
  2. The Vector Class
  3. STL Algorithms
  4. Use of Libraries


This is an introductory-level C++ programming course designed for:

  • Developers with experience programming in C or other languages.
  • Practical hands-on prior programming experience and knowledge is required.

  • Writing procedural programs using C++
  • Using private, public and protected keywords to control access to class members
  • Writing constructors and destructors
  • Implementing polymorphic methods in programs
  • Writing programs using file I/O and string streams
  • Using manipulators and stream flags to format output
  • Writing programs that use generic classes and functions
  • Apply object-oriented design techniques to real-world programming problems
  • Understand how C++ protects the programmer from implementation changes in other modules of an application
  • Defining exceptions and using throw to trigger them

A full refund will be issued for class cancellations made at least 10 business days before the course begins. Payment is nonrefundable for cancellations or reschedules made within 10 business days from the course start date and for No Shows (students who do not attend class).  For reschedules made within 10 business days from the course start date, students must reschedule immediately for the same course, up to a maximum of six months from the original date.  A student may only reschedule one time.

Introduction to C++ Programming | Intensive C++ Essentials Schedule


Live Online

Aug 14th - 17th, 2023
10:00 AM - 6:00 PM ET

Live Online

Oct 16th - 19th, 2023
10:00 AM - 6:00 PM ET

Live Online

Dec 11th - 14th, 2023
10:00 AM - 6:00 PM ET

Request Private Group Training