Introduction to C++ and Object-Oriented Programming

01

Course Overview

This course explores the key features of the C++ programming language and object-oriented concepts. The course starts with a review of the key language features of C++, followed by essential object-oriented concepts. A complete sequence of working samples are used to demonstrate concepts presented in the course guide. Lab exercises are provided with detailed instructions and working solutions. If you want to learn C++ to create applications on the job or on your own, this course will help you understand how C++ works, and immediately be more productive.

02

Key Learning Areas

  • Learn the basic structural elements of a C++ program
  • Learn a disciplined approach to program design
  • Learn to compose types and implement encapsulation
  • Learn the role of copy constructors
  • Learn techniques for handling memory allocation errors
  • Learn how to model your problem domain
  • Learn the features of virtual functions and dynamic binding
  • And much more…
03

Course Outline

Language Primer & OO Concepts

  • Examine the basic syntax and language constructs of a C++ program.
  • Learn how the object model provides the framework for abstraction, encapsulation and instantiation.

Classes in C++

  • Use member data to represent data encapsulated in a
  • Use member functions to implement class’ operations and provide access to its data.
  • Use the ‘this’ pointer to refer to the invoking object.
  • Implement an abstract data type using C++ classes.
  • Organize code for C++ classes into code files and header files.
  • Write simple test programs to exercise each member function of a class.

Functions in C++

  • Use function prototypes in your code.
  • Take advantage of C++ support for strong type checking.
  • Make use of automatic conversion of parameters in function calls when there is a prototype.
  • Use inline functions.
  • Use default arguments.
  • Learn the benefits of overloading.
  • Learn the standard C/C++ call by value mechanism for passing parameters in functions calls.

Constructors and Destructors

  • Learn the use and benefit of constructors.
  • Use multiple constructors in a class, including the default constructor.
  • Learn the use and benefit of destructors.
  • Simplify a class by using default arguments in a constructor.

Memory Management

  • Learn the use of static, automatic (stack) and heap memory.
  • Use new and delete to manage memory.
  • Provide constructors and destructors to support dynamic objects.
  • Discuss techniques for handling memory allocation errors.
  • Hide details of memory management in a class.

Argument Passing

  • Use reference declarations to alias variables.
  • Use references in argument passing.
  • Learn the role of copy constructors.
  • Use constant types in your programs.

Operator Overloading

  • Use overloaded operators in your code.
  • Learn the semantics of assignment.
  • Distinguish between initialization and assignment.
  • Overload the assignment operator.
  • Implement type conversions by overloading cast operators and by constructors.

Access Control

  • Use C++ scoping facilities.
  • Use constants through enumeration types and through the const keyword.
  • Define “static members” and use them in your code.
  • Control access to member data and functions through public, private, and protected access specifiers.
  • Define “friend” function and explain how a friend function differs from a member function.

Inheritance

  • Use inheritance to model your problem domain and achieve greater code reuse.
  • Use C++ class derivation to implement inheritance.
  • Use public, protected and private to control access to class members.
  • Use an initialization list for proper base class initialization and embedded member initialization.
  • Determine order of invocation of constructors and destructors.
  • Distinguish between use of inheritance and composition.

Polymorphism and Virtual Functions

  • Learn the features of virtual functions and dynamic binding.
  • Learn pointer conversion in C++ inheritance and use pointers in connection with virtual functions.
  • Use polymorphism in C++ to write better structured, more maintainable code.
  • Provide virtual destructors for classes using virtual functions.
  • Specify abstract classes using pure virtual functions.
04

Who Benefits

To gain the most benefit from this course, students should have  some experience programming in C.

05

Prerequisites

Experience programming in a modern object-oriented language such as Java or C# is also sufficient.

Want this course for your team?

Atmosera can provide this course virtually or on-site. Please reach out to discuss your requirements.