Pugh-Killeen Logo

C++ and Object-Oriented Design for C Programmers

Home | Contact Us

Description

This course introduces the C programmer to the C++ language. It describes how C++ can be used to write better C and then goes into depth on the object oriented aspects of the language.

This class assumes the student has programmed in C for at least six months or has taken the C course. The five day class combines lecture with hands-on exercises.

Objectives

By the end of the course you will be able to:

  • Write a C++ program
  • Use C++ to write better C programs
  • Understand the object-oriented approach to programming
  • Define abstract data types
  • Create a C++ object with data and function members
  • Appreciate the strengths and weaknesses of C++

Instructor

The instructor is Kenneth Pugh, a recognized C and C++ language expert. Mr. Pugh has many years of experience in programming a variety of languages and operating systems. He is author of several books, including C Language for Programmers and All on C. He was a columnist for the C User's Journal and the C++ Journal. He has been on the faculty of the University of Hawaii and Wellesley College.

Outline

  • Object Oriented Programming
    • Data and function abstraction
    • Abstract data types
    • Comparison to Smalltalk and other languages
    • Static versus dynamic type checking
    • C++ Features
  • Review of C Features related to C++
    • Structures
    • Pointers versus References
    • Function Prototypes
    • Enumerations
    • Declarations and initializations
    • Memory management - malloc and free versus new and delete
  • Classes
    • Data members
    • Function members
    • Object Initialization - Constructors
    • Object Cleanup - Destructors
    • Default operations - copy constructor and assignment
    • Static members
    • Static functions
  • Functions
    • Call by value and call by reference
    • Function overloading
    • Default arguments
    • Operator functions and overloading
    • Friend functions
    • Inline functions
    • Const functions
  • Encapsulation
    • Public, Private, Protected Inheritance
    • Scope of names
    • Resolution operator ::
  • Polymorphism
    • Pointers to base class
    • Virtual functions and vtbl
    • Pure versus non-pure functions
  • Input and Output Library
    • iostreams
    • cout << operator
    • cin >> operator
    • Writing cout, cin friend functions
  • Templates
    • Class templates <class T>
    • Function templates
    • Use of templates
  • Multiple Inheritance
    • Meaning and Syntax
    • Virtual base classes
  • Design and Development of Classes
    • Is_A, Has_A relationships
    • Inheritance of interfaces
    • Inheritance of implementation
    • Error Checking
  • Other Aspects of C++
    • Exception Handling
    • Calling C Functions
    • Nested classes
    • Other operators -> ->* .* ()
    • Mixing C style and C++ style

Copyright (c) 1996-2007 Pugh-Killeen Associates

Home Services Solutions Classes Resources About Us Contact Us Legal