Introduction to C++ Programming Essentials (TTCP2100)

Gain the Job-Ready Skills and Confidence required to build robust, efficient software using C++ through practical application and real-world problem-solving

TTCP2100

Introductory

4 Days

Course Overview

Overview

Introduction to C++ Programming Essentials is a four day, hands-on course geared for developers who have a foundational grasp of object-oriented (OO) programming. Throughtout the course you’ll explore how C++ can transform your programming skills, enabling you to tackle more complex and performance-intensive projects. Whether it's system software, game development, or optimizing existing code, the skills acquired in this course will serve as a strategic asset in your professional toolkit.

The course structure is a balanced mix of theoretical knowledge and practical application, with 50% of the time dedicated to hands-on labs. You'll begin by grasping the essentials of C++ file organization and toolsets, moving on to advanced topics like data handling with pointers and references, and function intricacies including overloading and inline functions. The curriculum also delves into class design, object lifecycle management, and dynamic memory management, equipping you with the skills to write efficient and maintainable code.

Working in a hands-on learning environment, guided by our expert instructor, you’ll learn strategic problem-solving skills and build confidence in applying C++ effectively in your work environment. The labs simulate real-world challenges, preparing you to immediately implement your new skills. As you conclude this course, you'll leave with a comprehensive understanding of C++ applications, ready to handle complex programming tasks and contribute significantly to your project success.

NOTE: This course is for experienced developers. Students new to Programming should consider our TTCP2000 Introduction to Programming and C++ Basics for Non-Programmers, which combines and introduction to programming with basic C++ coding skills.

 

Learning Objectives

This course combines engaging instructor-led presentations and useful demonstrations with valuable hands-on labs and engaging group activities. Throughout the course you’ll learn how to:

  • Advanced Data Management: Master data manipulation using pointers, references, and various data types in C++, essential for high-performance applications.
  • Expertise in C++ Functions: Gain proficiency in function overloading, inline functions, and call-by-reference, crucial for efficient and modular code.
  • Class Design and Object Lifecycle Management: Acquire skills in designing classes with constructors, destructors, and access modifiers, and managing object lifecycles for robust software development.
  • Dynamic Memory Management: Learn effective memory management techniques, including handling allocation errors, to write memory-efficient C++ programs.
  • Application of Inheritance and Polymorphism: Understand and implement inheritance and polymorphism in C++ for creating flexible and reusable code.
  • Standard Library and Algorithm Utilization: Utilize C++ Standard Library resources for efficient algorithm implementation and data handling.
  • Class Member Access Control and Exception Handling: Master using private, public, and protected keywords for class member access control, and develop robust exception handling skills using try and catch blocks.
  • Advanced Class Features and File I/O: Learn advanced class features like const and static members, operator overloading, and implement file I/O operations and string streams for comprehensive C++ programming.

If your team requires different topics, additional skills or a custom approach, our team will collaborate with you to adjust the course to focus on your specific learning objectives and goals.

Course Objectives

Learning Objectives

This course combines engaging instructor-led presentations and useful demonstrations with valuable hands-on labs and engaging group activities. Throughout the course you’ll learn how to:

  • Advanced Data Management: Master data manipulation using pointers, references, and various data types in C++, essential for high-performance applications.
  • Expertise in C++ Functions: Gain proficiency in function overloading, inline functions, and call-by-reference, crucial for efficient and modular code.
  • Class Design and Object Lifecycle Management: Acquire skills in designing classes with constructors, destructors, and access modifiers, and managing object lifecycles for robust software development.
  • Dynamic Memory Management: Learn effective memory management techniques, including handling allocation errors, to write memory-efficient C++ programs.
  • Application of Inheritance and Polymorphism: Understand and implement inheritance and polymorphism in C++ for creating flexible and reusable code.
  • Standard Library and Algorithm Utilization: Utilize C++ Standard Library resources for efficient algorithm implementation and data handling.
  • Class Member Access Control and Exception Handling: Master using private, public, and protected keywords for class member access control, and develop robust exception handling skills using try and catch blocks.
  • Advanced Class Features and File I/O: Learn advanced class features like const and static members, operator overloading, and implement file I/O operations and string streams for comprehensive C++ programming.
Need different skills or topics?  If your team requires different topics or tools, additional skills or custom approach, this course may be further adjusted to accommodate.  We offer additional C++, programming, development, design, testing, services, application security and other related topics that may be blended with this course for a track that best suits your needs

Course Prerequisites

Audience & Pre-Requisites

This is a technical course that introducees C++ programming to experienced developers. Practical hands-on prior programming experience and knowledge is required, preferably with some background in OO development.  This course is not for non-developers, or new developers without practical experience.

NOTE: Students new or newer to Programming, or who are coming from a C or mainframe background and new to OO,  should consider our TTCP2000 Introduction to Programming and C++ Basics for Non-Programmers, which combines and introduction to programming with basic C++ coding skills.

 

Related Training | C++ Training Series

The following is a small subset of related courses. See the online catalog for a complete list of courses and learning paths. 

  • TTCP2000     Introduction to Programming and C++ Basics for Non-Programmers
  • TTCP2100     Introduction to C++ Programming Essentials
  • TTCP2150     Intermediate C++ Programming | Next-Level C++
  • TTCP2175     Advanced C++ Programming
  • TTCP1250     Object Oriented Design Patterns and Best Practices in C++
  • TTCP1270     SOLID Design in C++

Course Agenda

Course Topics / Agenda

Please note that this list of topics is based on our standard course offering, evolved from typical industry uses and trends. We will work with you to tune this course and level of coverage to target the skills you need most. Course agenda, topics and labs are subject to adjust during live delivery in response to student skill level, interests and participation.

  1. Getting Started
  • Using the development environment
  • C++ file organization and tools
  1. Handling Data
  • Primitive Types
  • Initialization and Assignment
  • Const
  • Pointers
  • Constant Pointers
  • References
  • Constant Reference Arguments
  • Scope
  1. Functions
  • Function Prototypes and Type Checking
  • Function Overloading
  • Name Resolution
  • Call by Value
  • Call-by-Reference and Reference Types
  • References in Function Return
  • Constant Argument Types
  • Providing Default Arguments
  • Inline Functions
  1. Declaring and Defining Classes
  • Components of a Class
  • Class Structure
  • Class Declaration Syntax
  • Member Data
  • Built-in Operations
  • Constructors and Initialization
  • Initialization vs. Assignment
  • Class Type Members
  • Member Functions and Member Accessibility
  • Inline Member Functions
  • Friend Functions
  • Static Members
  • Modifying Access with a Friend Class
  1. Creating and Using Objects
  • Creating Automatic Objects
  • Creating Dynamic Objects
  • Calling Object Methods
  • Constructors
  • Initializing Member consts
  • Initializer List Syntax
  • Allocating Resources in Constructor
  • Destructors
  • Scope Resolution Operator ::
  • Using Objects as Arguments
  • Objects as Function Return Values
  • Constant Methods
  • Containment Relationships
  1. Controlling Object Creation
  • Object Copying and Copy Constructor
  • Automatic Copy Constructor
  1. Dynamic Memory Management
  • Static, Automatic, and Heap Memory
  • Free Store Allocation with new and delete
  • Handling Memory Allocation Errors
  1. Strings in C++
  • Character Strings
  • The String Class
  • Operators on Strings
  • Member Functions of the String Class
  1. Streaming I/O
  • Streams and the iostream Library
  • Built-in Stream Objects
  • Stream Manipulators
  • Stream Methods
  • Input/Output Operators
  • Character Input
  • String Streams
  • Formatted I/O
  • File Stream I/O
  • Overloading Stream Operators
  • Persistent Objects
  1. Templates
  • Purpose of Template Classes
  • Constants in Templates
  • Templates and Inheritance
  • Container Classes
  • Use of Libraries
  1. Inheritance
  • Inheritance and Reuse
  • Composition vs. Inheritance
  • Syntax for Public Inheritance
  • Use of Common Pointers
  • Constructors and Initialization
  • Inherited Copy Constructors
  • Destructors and Inheritance
  1. Polymorphism in C++
  • Definition of Polymorphism
  • Calling Overridden Methods
  • Upcasting
  • Accessing Overridden Methods
  • Virtual Methods and Dynamic Binding
  • Virtual Destructors
  • Abstract Base Classes and Pure Virtual Methods
  1. The Standard Library
  • Survey of the library
  • Containers
  • Algorithms
  • Numerics
  • Date & Time

Course Materials

Course Setup / Tools Options

There are many options for the student development platform. IDE’s from Visual Studio, Visual Studio Code, Eclipse and others are acceptable.  A compiler compatible with C++ 20 is also required.  GCC version 12+ or Visual Studio 2022 (MSVC) are compatible.  GTest is also required for the course and comes with VS 2022.  For Linux and other platforms, it must be installed. 

Students may configure their own environment or, ask us about a virtual lab setup with everything already installed.We’ll collaborate with you to ensure your team is set up and ready to go well in advance of the class. Please inquire about set up details and options for your specific course of interest.

Raise the bar for advancing technology skills

Attend a Class!

Live scheduled classes are listed below or browse our full course catalog anytime

Special Offers

We regulary offer discounts for individuals, groups and corporate teams. Contact us

Custom Team Training

Check out custom training solutions planned around your unique needs and skills.

EveryCourse Extras

Exclusive materials, ongoing support and a free live course refresh with every class.

Attend a Course

Please see the current upcoming available open enrollment course dates posted below. Please feel free to Register Online below, or call 844-475-4559 toll free to connect with our Registrar for assistance. If you need additional date options, please contact us for scheduling.

Course Title Days Date Time Price
Introduction to C++ Programming Essentials (TTCP2100) 4 Days May 20 to May 23 10:00 AM to 06:00 PM EST $2,495.00 Enroll
Introduction to C++ Programming Essentials (TTCP2100) 4 Days Aug 8 to Aug 11 10:00 AM to 06:00 PM EST $2,495.00 Enroll
Introduction to C++ Programming Essentials (TTCP2100) 4 Days Sep 23 to Sep 26 10:00 AM to 06:00 PM EST $2,495.00 Enroll
Introduction to C++ Programming Essentials (TTCP2100) 4 Days Nov 4 to Nov 7 10:00 AM to 06:00 PM EST $2,495.00 Enroll

Mix, Match & Master!
2FOR1: Two Courses, One Price!

Enroll in *any* two public courses (for 2023 *OR* 2024 dates!) by December 31, for one price!  Learn something new, or share the promo!

Click for Details & Additional Offers

Learn. Explore. Advance!

Extend your training investment! Recorded sessions, free re-sits and after course support included with Every Course
Trivera MiniCamps
Gain the skills you need with less time in the classroom with our short course, live-online hands-on events
Trivera QuickSkills: Free Courses and Webinars
Training on us! Keep your skills current with free live events, courses & webinars
Trivera AfterCourse: Coaching and Support
Expert level after-training support to help organizations put new training skills into practice on the job

The voices of our customers speak volumes

Special Offers
Limited Offer for most courses.

SAVE 50%

Learn More