Application Development & Programming Training Icon

Introduction to C++ Programming | Intensive C++

5 Days Classroom Session   |  
5 Days Live Online
Classroom Registration
Group Rate:
(per registrant, 2 or more)
GSA Individual:
Live Online Registration
Live Online:
Private Onsite Package

This course can be tailored to your needs for private, onsite delivery at your location.

Request a Private Onsite Price Quote

Professional Credits


ASPE is an IIBA Endorsed Education Provider of business analysis training. Select Project Delivery courses offer IIBA continuing development units (CDU) in accordance with IIBA standards.


Select courses offer Leadership (PDU-L), Strategic (PDU-S) and Technical PMI professional development units that vary according to certification. Technical PDUs are available in the following types: ACP, PBA, PfMP, PMP/PgMP, RMP, and SP.


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.

In this training course, attendees will explore:

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
Upcoming Dates and Locations
All Live Online times are listed in Eastern Time Guaranteed To Run
Request a quote for private onsite training Request
Nov 16, 2020 – Nov 19, 2020    10:00am – 6:00pm Live Online Register
Course Outline

Part 1: Moving from C to C++ (Optional)

  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
  7. Constant Pointers
  8. References
  9. Constant Reference Arguments
  10. Volatile Data
  11. Global Data

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
  9. Call-by-Reference and Reference Types
  10. References in Function Return
  11. Constant Argument Types
  12. Conversion of Parameters Using Default Initializers
  13. Providing Default Arguments
  14. Inline Functions

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
  7. Operator Precedence
  8. The this Pointer
  9. Overloading the Assignment Operator
  10. Overloading Caveats

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
  9. Block and Function Scope
  10. File and Global Scope
  11. Class Scope
  12. Scope Resolution Operator ::
  13. Using Objects as Arguments
  14. Objects as Function Return Values
  15. Constant Methods
  16. Containment Relationships

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

Object Copying and Copy Constructor

Automatic Copy Constructor

Conversion Constructor


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
  8. Formatted I/O
  9. File Stream I/O
  10. Overloading Stream Operators
  11. Persistent Objects

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
  7. Initialization vs. Assignment
  8. Class Type Members
  9. Member Functions and Member Accessibility
  10. Inline Member Functions
  11. Friend Functions
  12. Static Members
  13. Modifying Access with a Friend Class

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
  6. Redefining Behavior in Derived Classes
  7. Designing Extensible Software Systems
  8. Syntax for Public Inheritance
  9. Use of Common Pointers
  10. Constructors and Initialization
  11. Inherited Copy Constructors
  12. Destructors and Inheritance
  13. Public, Protected, Private Inheritance

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
  7. Abstract Base Classes and Pure Virtual Methods

Part 18: Multiple Inheritance

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

Part 19: The Standard Template Library

  1. STL Containers
  2. Parameters Used in Container Classes
  3. The Vector Class
  4. STL Algorithms
  5. Use of Libraries
Who should attend

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.


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.