TTCP2100: Introduction to C++ 20 Programming Essentials
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.