C++ Programming Workshop—
A Hands-on Course


This five-day hands-on workshop provides the knowledge and skills required to design and code understandable, extensible, and efficient C++ programs.

The outstanding features of object-oriented programming are:

The benefits of object-oriented methods are improved productivity, higher quality software, and more rapid release schedules.

In C++, the features of object-oriented programming have been carefully implemented in a way that preserves the portability and efficiency of C. This class will teach you the details of C++ syntax along with the coding techniques and design principles required to take advantage of the language. This is a hands-on class—over 60% of class time will be spent in directed lab exercises.

On completion of this course, students will be able to:

Who will benefit?

This course is intended for experienced developers. Six months programming experience with C is prerequisite.

Call 1.800.756.9450 to schedule this course or request information about other Socrates Group seminars and workshops. The Socrates Group provides comprehensive instruction in all aspects of client/server computing.

Course Outline:

Concepts of object-oriented programming

  1. Criteria for a modularization method
  2. Information hiding
  3. Abstract data types
  4. Objects and simulation
  5. Goals of object-oriented programming
  6. The role of the programming system
  7. Object-oriented programming systems concepts
  8. Evolution of object-oriented languages
  9. Evolution of C++
  10. Linking C++ with C

C to C++ — basic extensions

  2. Declarations
  3. Stream I/O
  4. Free store
  5. Enumeration and struct names
  6. Anonymous unions
  7. Inline functions
  8. Function prototyping
  9. Default arguments
  10. Reference variables
  11. Initialization vs. assignment
  12. Function name overloading

Classes and objects

  1. Adding functions to struct
  2. Classes and objects
  3. The current object
  4. Separating definition and implementation
  5. Scope resolution
  6. The message-passing metaphor
  7. Object-message diagrams
  8. Constructors
  9. Member function overloading
  10. Constructors for automatic type conversion
  11. Member variable constructors
  12. Static member variables
  13. Array initialization
  14. Headers and libraries


  1. Public and private base classes
  2. Protected sections
  3. Constructors in derived classes
  4. Documenting inheritance

Collections and polymorphism

  1. Collections and genericity
  2. Templates
  3. Iterators
  4. Polymorphism

Operator overloading and friends

  1. Friend classes and functions
  2. Operator overloading
  3. Non-member operator overloading
  4. Overloaded operators and automatic type conversion
  5. Commutative operators

The I/O stream classes

  1. Formatting
  2. Streams and files
  3. Positioning and state reporting
  4. Implementation of the stream classes

Memory management

  1. Variable sized objects
  2. Destructors
  3. Copy constructors
  4. Assignment
  5. Reference counting

Program design examples

  1. Constraint propagation
  2. Simulation

Advanced topics in syntax

  1. Type conversion rules
  2. Overloading resolution
  3. Details of reference syntax
  4. Initialization of globals
  5. Multiple inheritance
  6. Exception processing
  7. The C++ standard library
  8. Tricks and tips

The programming context

  1. Review: Goals of OOP and C++
  2. Doing OOP in C
  3. C to C++ migration
  4. C vs C++ style
  5. C++ programming style guidelines
  6. Libraries, tools, and environments
  7. Organizational issues


© Copyright 1995, The Socrates Group. All Rights Reserved.