About Us
Education and Training
Education and Training

Consulting
Gifts
Contacting Us
Employment
The Pantheon Systems Journal
Home

Pantheon Systems, Inc.
The Object Technology Company


Programming in C++
A Practical Introduction to the C++ language

Duration: 4 days

Class size: Up to 12 attendees.

Prerequisites: One year of programming experience. Familiarity with 'C' syntax.

Who should take this course?
System designers, programmer analysts and software engineers.

What will you gain?

  • An understanding of how to program in C++. The ability to use C++ constructs correctly. The ability to read and follow C++ code.
  • An insight into the power and pitfalls of the C++ language.
  • An awareness of some major implementation trade-offs in using the language.

Course contents:

  1. Introduction

  2. The C++ environment
    Motivational sample program in C and C++. Exploration of key differences. C++ program structure and development process. Basic elements of reading and writing in C++.
    Lab: Compile and run first C++ program. Deliberately introduce some common errors and explore the error messages.

  3. Classes
    What is a class? Class declaration. Instances and classes. Meaning of private and public. Static members.
    Lab: Create a simple program in C++. Usage of member variables, cout and cin.

  4. Member Functions
    Need for member functions. Declaration vs. definition. Function argument defaulting. Inline functions. Scopes in C++. The scope resolution operator. Function overloading. Static functions.
    Lab: Use of member functions, including defaulted arguments, overloading, and scope resolution.

  5. Constructors and Destructors
    Rationale for constructors and destructors. Constructor syntax. Overloaded constructors. Initialization vs. assignment. Initialization syntax. Default constructors, when are they required. Classes containing other objects initialization and rules.
    Lab: Using constructors, overloading constructors, class containing another object, initialization.

  6. Inheritance
    Inheritance rationale, motivational example. C++ inheritance syntax. Constructors and inheritance. Initializing the base lass. Similarities in syntax between contained object initialization and base class initialization. The 'protected' keyword. Access levels and access transmission. Types of derivation. Multiple inheritance, usage, and problems. Syntax of multiple inheritance. Virtual base classes, issues and resolutions.
    Lab: Using public and private inheritance. Default constructors when base classes do not have default constructors. Function hiding vs. overriding. Multiple inheritance and ambiguity resolution.

  7. Dynamic Binding
    Motivation for dynamic binding. When to use polymorphism. C++ syntax for polymorphism. Virtual and inline. Access widening due to polymorphism. Implementation of polymorphism.
    Lab: Applying polymorphism. Differences between virtual and non-virtual functions. Virtuals and in-lines.

  8. C++ Miscellany
    Topics of general importance in C++, although not specific to OO programming - consts and references, const member functions and good practice. References are not pointers - comparison. Copy constructor and assignment operator - when they must be explicitly defined. Operator overloading. Cast operators and their usage. Overloading ostream.
    Lab: Converting existing functions to use const and reference. Defining assignment operators and copy constructors. Using cast operators. Overloading to permit user-defined class to be written out using cout.

  9. Templates
    Need for parameterized types. Examples of parameterization in Approach to parameterization in C++. Template classes and functions. Template rules. Special casing functions that do not fit the template.
    Lab: Creating and using template classes.

  10. Conclusion
    Review of topics covered. Levels of usage of C++. Moving to C++ - do's and don'ts. References and suggested reading.

Course Activities:
Programming in C++ provides a balanced combination of theory and practice. As with all of Pantheon's courses, lectures are immediately reinforced by industrial-strength labs. The lectures provide the semantic background, while the labs clarify the syntactic implications through practical usage. Sample solutions are provided for all the labs.

Top

Registration | Calendar | Curriculum | After Hours | Forms | Schedules/Pricing

Copyright© Pantheon Systems, Inc. All rights reserved.