Data Deliverance Courseware

Advanced C++ Programming

Current Version: 02-1101-0303
Summary
This course makes C++ programmers more productive. It focuses on effective use of the language. This course covers advanced language features, describes useful implementation techniques, and reviews object-oriented design guidelines.

Prerequisites
A good working knowledge of the C++ language is absolutely essential before attending this course.

Course Objectives
On completion of this course, the student should be able to
Length
5 Days

Format
Instructor-led course, with practical computer-based exercises.

Course Outline
  • Experienced Use of C++
    • Using constants and constant pointers
    • References, parameters, and variables
    • Inline functions and encapsulation
    • Templates and initialization
  • User-Defined Data Types
    • Defining robust classes
    • Constructors and initialization
    • Dynamic storage within a class
    • Type conversion and array types
    • Stand-in classes
  • Generic Data Types
    • Collection classes
    • Data type vs. data structure
    • Class templates
    • Names and instantiation
    • Specialization

  • Class Relationships
    • Inheritance
    • Virtual functions, polymorphism, and abstract base classes
    • Virtual destructors and base classes
    • Constructors
  • Memory Management
    • Dynamic object creation
    • Vector allocation
    • Sharing memory among objects
    • Reference counting and cycles
    • Swappable objects
    • Smart pointers
  • Exception Handling
    • Error-handling strategies
    • Throwing exceptions
    • Inheritance and exceptions
  • Mixing C and C++
    • C/C++ source and link incompatibility
    • Calling C++ code from C
  • Hardware and Software Requirements
    Any standards-compliant C++ compiler. The course is platform-neutral, so is suitable for Windows, MacOS or Linux systems.