Seminar C++ Programming for C Programmers (Canada) Seminar

Presented by Hands-On Technology Transfer

Hands On Technology Transfer Computer Training

Bring this seminar on-site to your facility for groups of 10 or more.

This hands on C++ training course presents a thorough introduction to object-oriented programming in C++ for experienced C programmers

Course Description


This hands on C++ training course presents a thorough introduction to object-oriented programming in C++ for experienced C programmers. 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. Extensive programming examples and exercises are provided, with approximately half of class time spent performing hands on programming labs. Practical aspects of C++ programming including efficiency, performance, testing, and reliability considerations are stressed throughout.

Prerequisites

Prior programming experience with C.

Moving from C to C++
  • New Compiler Directives
  • Stream Console I/O
  • Explicit Operators
  • Standard Libraries
  • Data Control Capabilities
Handling Data
  • New Declaration Features
  • Initialization and Assignment
  • Enumerated Types
  • The bool Type
  • Constant Storage
  • Pointers to Constant Storage
  • Constant Pointers
  • References
  • Constant Reference Arguments
  • Volatile Data
  • Global Data
Functions
  • Function Prototypes and Type Checking
  • Default Function Data Types
  • Function Overloading
  • Problems with Function Overloading
  • Name Resolution
  • Promotions and Conversions
  • Call by Value
  • Reference Declarations
  • Call-by-Reference and Reference Types
  • References in Function Return
  • Constant Argument Types
  • Conversion of Parameters Using Default Initializers
  • Providing Default Arguments
  • Inline Functions
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
  • Block and Function Scope
  • File and Global Scope
  • Class Scope
  • Scope Resolution Operator ::
  • Using Objects as Arguments
  • Objects as Function Return Values
  • Constant Methods
  • Containment Relationships
Dynamic Memory Management
  • Advantages of Dynamic Memory Allocation
  • Static, Automatic, and Heap Memory
  • Free Store Allocation with new and delete
  • Handling Memory Allocation Errors
Controlling Object Creation
  • Object Copying and Copy Constructor
  • Automatic Copy Constructor
  • Conversion Constructor
Inheritance
  • Inheritance and Reuse
  • Composition vs. Inheritance
  • Inheritance: Centralized Code
  • Inheritance: Maintenance and Revision
    • Public, Private and Protected Members
    • Redefining Behavior in Derived Classes
    • Designing Extensible Software Systems
  • Syntax for Public Inheritance
  • Use of Common Pointers
  • Constructors and Initialization
  • Inherited Copy Constructors
  • Destructors and Inheritance
  • Public, Protected, Private Inheritance
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
Introduction to Object Concepts
  • The Object Programming Paradigm
  • Object-Orientated Programming Definitions
  • Information Hiding and Encapsulation
  • Separating Interface and Implementation
  • Classes and Instances of Objects
  • Overloaded Objects and Polymorphism
Templates
  • Purpose of Template Classes
  • Constants in Templates
  • Templates and Inheritance
  • Container Classes
  • Use of Libraries
Strings in C++
  • Character Strings
  • The String Class
  • Operators on Strings
  • Member Functions of the String Class
Exceptions
  • Types of Exceptions
  • Trapping and Handling Exceptions
  • Triggering Exceptions
  • Handling Memory Allocation Errors
C++ Program Structure
  • Organizing C++ Source Files
  • Integrating C and C++ Projects
  • Using C in C++
Reliability Considerations in C++ Projects
  • Function Prototypes
  • Strong Type Checking
  • Constant Types
  • C++ Access Control Techniques
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
Multiple Inheritance
  • Derivation from Multiple Base Classes
  • Base Class Ambiguities
  • Virtual Inheritance
    • Virtual Base Classes
    • Virtual Base Class Information
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
Operator Overloading
  • Advantages and Pitfalls of Overloading
  • Member Operator Syntax and Examples
  • Class Assignment Operators
  • Class Equality Operators
  • Non-Member Operator Overloading
  • Member and Non-Member Operator Functions
  • Operator Precedence
  • The this Pointer
  • Overloading the Assignment Operator
  • Overloading Caveats
The Standard Template Library
  • STL Containers
  • Parameters Used in Container Classes
  • The Vector Class
  • STL Algorithms
  • Use of Libraries

 

More Seminar Information

Hands-On Technology Transfer
Hands On Technology Transfer Computer Training

Summary

This hands on C++ training course presents a thorough introduction to object-oriented programming in C++ for experienced C programmers

Delivery Method

Seminar Seminar

Also Available As

On-Site Training On-Site Training

Who Should Attend

Computer Industry Professionals

 
Search similar training
Email this page
Print this document
 

Dates and Locations

Quebec City, QC
5/5/2020 - 5/8/2020
Tuition: $2075

Montreal, QC
5/5/2020 - 5/8/2020
Tuition: $2075

Toronto, ON
5/5/2020 - 5/8/2020
Tuition: $2075

Ottawa, ON
5/5/2020 - 5/8/2020
Tuition: $2075

Mississauga, ON
5/5/2020 - 5/8/2020
Tuition: $2075

see all dates/locations

 

Frequently Asked
Questions

Payment Options
Bill Me/Invoice
Credit Card

Register
Online
Fax Form

Availability
Select a date from the list at the bottom of the page for specific information about that class.

Other Information
Seminar

All Date/Location Information

Alberta (Find training in Alberta)
5/26/2020-5/29/2020 in Calgary, AB         Find a seminar in Calgary AB
5/26/2020-5/29/2020 in Edmonton, AB         Find a seminar in Edmonton AB

British Columbia (Find training in British Columbia)
5/26/2020-5/29/2020 in Vancouver, BC         Find a seminar in Vancouver BC

Manitoba (Find training in Manitoba)
5/26/2020-5/29/2020 in Winnipeg, MB         Find a seminar in Winnipeg MB

Ontario (Find training in Ontario)
5/5/2020-5/8/2020 in Kingston, ON         Find a seminar in Kingston ON
5/5/2020-5/8/2020 in Mississauga, ON         Find a seminar in Mississauga ON
5/5/2020-5/8/2020 in Ottawa, ON         Find a seminar in Ottawa ON
5/5/2020-5/8/2020 in Toronto, ON         Find a seminar in Toronto ON

Quebec (Find training in Quebec)
5/5/2020-5/8/2020 in Montreal, QC         Find a seminar in Montreal QC
5/5/2020-5/8/2020 in Quebec City, QC         Find a seminar in Quebec City QC

Saskatchewan (Find training in Saskatchewan)
5/26/2020-5/29/2020 in Regina, SK         Find a seminar in Regina SK