TTCP2100: Introduction to C++ 20 Programming Essentials

Become an EPIC Affiliate

To view the class schedule you need to become an Affiliate

  • Largest “Guaranteed To Run” public technical training schedules available
  • Easy to become an Affiliate – no charge or fee
Become an EPIC Affiliate

already an Affiliate?  Login

About this Course

Introduction to C++ Programming / C++ Essentials 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.

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.

Audience Profile

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

At Course Completion

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. Our engaging instructors and mentors are highly experienced practitioners who bring years of current "on-the-job" experience into every classroom.

Working in a hands-on learning environment, guided by our expert team, attendees will learn:

· Defining a class in C++

· Using private, public and protected keywords to control access to class members

· 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

· Apply object-oriented design techniques to real-world programming problems

· 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

Outline

1. Getting Started

· Overview

· Using the development environment

· C++ file organization and tools

2. Handling Data

· Primitive Types

· Initialization and Assignment

· Const

· Pointers

· Constant Pointers

· References

· Constant Reference Arguments

· Scope

3. 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

4. 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

5. 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

6. Controlling Object Creation

· Object Copying and Copy Constructor

· Automatic Copy Constructor

7. Dynamic Memory Management

· Static, Automatic, and Heap Memory

· Free Store Allocation with new and delete

· Handling Memory Allocation Errors

8. Strings in C++

· Character Strings

· The String Class

· Operators on Strings

· Member Functions of the String Class

9. Operator Overloading

· Member Operator Syntax and Examples

· Class Assignment Operators

· Class Equality Operators

· Non-Member Operator Overloading

· Member and Non-Member Operator Functions

· Operator Precedence

· This Pointer

· Overloading the Assignment Operator

· Conversion Operators

· Constructor Conversion Operator

· Explicit vs Implicit conversion

10. 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

11. Templates

· Purpose of Template Classes

· Constants in Templates

· Templates and Inheritance

· Container Classes

· Use of Libraries

12. Inheritance

· Inheritance and Reuse

· Composition vs. Inheritance

· Syntax for Public Inheritance

· Use of Common Pointers

· Constructors and Initialization

· Inherited Copy Constructors

· Destructors and Inheritance

17. 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

13. Exceptions

· Types of Exceptions

· Trapping and Handling Exceptions

· Triggering Exceptions

· Handling Memory Allocation Errors

19. The Standard Library

· Survey of the library

· Containers

· Algorithms

· Numerics

· Date & Time

Prerequisites

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