C++ Training: Acquainting yourself with Objects

Course Delivery

Live Instructor-Led Training

Course Description

The course Acquainting yourself with Objects (C++ Training) covers everything you need to get started with object oriented programming using C++. The training includes basic C++ syntax & data types, memory management together with a complete exploration of class programming with C++. The course covers static data, virtual functions, inheritance & polymorphism, pure virtual functions & more. Come master the fundamentals of object oriented programming with C++.

Course Dates and Pricing

Mar 18 - 21, 2024$3,350.00

Course Outline

The place of C++ in the extended family of programming languages

Binary compatible, source compatible and interpreted code
Visual Basic, C++, Java and scripting languages
C++ versus C
Strengths and weaknesses of C++
The origins of C++
The code development process: The need for planning

Best Practices of Software Engineering

Characteristics of a good software solution
How good software is built
Iterative development
Requirements management
Use of component-based architectures
Ongoing verification of software quality
Control of software changes

The Software Engineering Process

The Rational Unified Process
The Inception Phase
The Elaboration Phase
The Construction Phase
The Transition Phase
The RUP: Dynamic Structure
Symptoms and Root Causes of Software Development Problems

Use Cases in the Overall Process

Business Process Modeling
Use Cases in the Software Development Process
Use Cases and Requirements
Management of Requirements and Use Cases

Writing Use Cases

Graphical Notation
Use Case Formats
Use Case Sections
The Supplementary Specification

Design with UML

Functional versus Non-Functional Requirements
Moving from Analysis to Design
Modeling the Database
UML Business Activity Diagrams
UML: Design Class Diagrams
UML: Sequence Diagrams
UML: Statechart Diagrams
Dealing with Large Systems
Implementing a Change Management Process

Essential preparatory topics

Memory architecture: The heap and the stack
Variables: declaration and instantiation
Variables: the assignment operator
Casting and conversion: Old style C versus specific casting operators
Variables: using objects and constructors
Declaring constants
Using const effectively (What about #define)

The World of Pointers and Memory Management

The architecture of pointers
Declaring pointers on the heap and on the stack
The new and delete operators
Using const with pointers
Using null and pointers
Operators and pointers


Using iostream functions
The signature of a function
Defining the scope of a function
Using friend functions
Passing parameters by reference or by pointer?
Passing parameters by value
Returning values from a function call
Inline functions

Object oriented concepts and Classes

What is an object oriented programming?
Defining effective and reusable
Object Oriented Design: A general approach using UML
The object in C++: the class
Defining member variables
Encapsulation: The need for private member variables
Creating properties: Defining inspector functions
Creating a simple object
Creating methods
Defining the scope of a member: private, public and protected
The special case of the constructor
Defining constructors
Defining destructors
Pointers and classes
Using static members and functions
Reference counting
Building a simple class

Constructors, Destructors and Basic Operators

Defining constructors
Using member initialization lists
The default constructor
The copy constructor
The canonical form
The destructor
Overloading the assignment operator
Overloading basic arithmetic operators (operator+, operator-, etc…)
Overloading the postfix and prefix operators
Defining conversion operators
Conflicting conversion issues
Building a more complicated class using forwarding and reference counting

Working with multiple objects and multiple files

Object oriented design
Inheritance and polymorphism
Defining the inheritance list
Public, private and protected inheritance
Friendship and inheritance
Defining polymorphism
Using virtual functions
Working with base class pointers
Building a multiple class example
Defining abstract base classes

Using Templates

What is a template
Template performance issues
Building a function template
Data Structures: Arrays, Lists, and Maps
Class templates
Building a linked list from scratch
About STL and other template libraries

Course Locations

  • Ottawa

  • Montreal

  • Toronto

Related C++ Training

C++ Training: Advanced C++: C++17 & More

The course Advanced C++, C++17 & More (C++ Training) pushes the boundaries of C++ development under the C++17 and C++11 standards. The training includes the use of modern C++ including data structures, memory management, multithreaded programming, locales, templates & more. The entire course is dedicated to advanced programming techniques that allow you to create powerful and flexible C++ code. The course optionally includes Boost, STL, or ATL. Training course titled C++ Training: Advanced C++: C++17 & More that will allow you to hone your professional skills.

Mar 4 - 7, 2024$3,500.00

C++ Training: Mastering Advanced Object Programming

The course Mastering Advanced Object Programming (C++ Training) begins with a brief overview of C++ object oriented programming. The training includes pure virtual functions, abstract classes, multiple inheritance & polymorphism. Concepts such as templates, design patterns and the use of smart pointers are discussed in practice. This is C++ programming from the ground up. Training course titled C++ Training: Mastering Advanced Object Programming that will allow you to hone your professional skills.

Feb 26 - 29, 2024$3,350.00Mar 25 - 28, 2024$3,350.00

C++ Training: Exploring Refactoring & Design Patterns

The course Exploring Refactoring & Design Patterns (C++ Training) demystifies design patterns with C++. The training includes the design patterns originally defined by the Gang of Four (GOF) and the fundamentals of C++ object orientated programming, Refactoring & UML. The course covers creational, behavioral & structural design patterns in C++ and provides many practical exercises that demonstrate applicability. Training course titled C++ Training: Exploring Refactoring & Design Patterns that will allow you to hone your professional skills.

Mar 11 - 14, 2024$3,500.00

C++ Training: Mastering the Qt Library

The course Mastering the Qt Library (C++ Training) explore the power and flexibility of the Qt library. Starting with a solid introduction to the Qt library, you learn to build user interfaces with the Qt library. The training includes the use of core classes, dialogs, windows, widgets, MVC as well as painting and styling. The Qt Graphics View is covered at the end if time permits. Training course titled C++ Training: Mastering the Qt Library that will allow you to hone your professional skills.

Mar 20 - 22, 2024$3,750.00

C++ Training: Objective-C Programming

The course Objective-C Programming (C++ Training) teaches you about Objective-C programming for Apple IOS devices. The training includes programming basics such as environment setup, variables, data types, control structures, functions & structure. The course also covers object oriented programming with Objective-C including classes, inheritance, polymorphism, interfaces & abstract classes to name a few. Our Objective-C training experience concludes with an exploration of controls and the MVC design pattern including views, models & controllers. Training course titled C++ Training: Objective-C Programming that will allow you to hone your professional skills.

Mar 18 - 21, 2024$3,350.00

C++ Training: The Complete C Programming Course

The course The Complete C Programming Course (C++ Training) covers C programming from A to Z. The training includes basic C data types & structures, functions, memory management, pointers & more. The course also discusses compiler options & directives as they apply to Windows & Linux. Training course titled C++ Training: The Complete C Programming Course that will allow you to hone your professional skills.

Feb 26 - 29, 2024$3,350.00Mar 25 - 28, 2024$3,350.00