Data Deliverance Courseware

C++ Programming

Current Version: 02-0400-0803
Summary
This course provides a practical hands-on introduction to the C++ programming language. Participants will learn the central concepts of the C++ language, with emphasis on the use of object-oriented techniques in writing robust code. Some advanced features are included.

Prerequisites
Participants must be fluent in ANSI C and have an understanding of object-oriented concepts

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
  • Why C++?
    • C vs. C++
    • Abstract data types
    • C++ as a better C
    • I/O services
    • Standard template library
    • Standard compliance
  • Functions
    • Function overloading
    • Default parameter values
    • Variable numbers of arguments
    • Ambiguity
    • Inline functions
    • References
    • The const type-qualifier
  • Classes
    • Class definition
    • Instantiating and using classes
    • Member functions
    • Classes and encapsulation
    • Constructors and destructors
    • Constructors and conversions
  • Storage Management
    • Memory allocation
    • Dynamic allocation
    • Problems with dynamic allocation
  • Operator Overloading
    • Simple operator overloading
    • Return values of operator functions
    • Predefined operator functions
    • Conversions
    • Member vs. non-member functions
    • Overloading I/O operators
    • Friend functions
    • The effect of conversions
    • Restrictions on overloading
    • The [ ] operator
  • Initialization
    • Initialization vs. assignment
    • Constructors
    • Arrays of objects
    • Branching past initialization
    • Constant class members
    • Static class members
  • Inheritance
    • Derivation
    • Overriding names
    • Constructor and destructor calls
    • Inheritance at work
    • Conversions
    • Features not inherited
    • Protected members
    • When to use inheritance
  • Polymorphism
    • Polymorphism
    • Abstract classes
    • New casting operators
  • I/O in C++ Programs
    • Standard streams
    • Insertion and extraction operators
    • Manipulators
    • Unformatted input and output
    • File input and output
    • Stream states
    • Problems with object I/O
  • Exception Handling
    • Exception handling concepts
    • Exception handling terminology
    • Uncaught exceptions
    • Inheritance and exceptions
    • When in an exception handler
    • Function declarations
  • Templates
    • Template functions
    • Template classes
    • Argument types
    • Standard Template Library
    • Implementation issues
    • Vector of strings
    • Maps
    • Appendix: Review of C
  • Hardware and Software Requirements
    Any standards-compliant C++ compiler. The course is platform-neutral, so is suitable for Windows, MacOS or Linux systems.