An Introduction to Object-Oriented Programming and C++

Richard S. Wiener, Lewis J. Pinson

Publisher: Addison-Wesley, 1988, 273 pages

ISBN: 0-201-15413-7

Keywords: Programming

Last modified: May 1, 2021, 2:01 p.m.

An Introduction to Object-Oriented Programming and C++ introduces the reader to the paradigm of object-oriented programming and presents the C++ language as a vehicle for doing object-oriented programming. Several major case studies are presented, allowing the reader to actually see the benefits of object-oriented programming and C++ in action.

Object-oriented problem solving and object-oriented programming represent a way of thinking and a methodology for computer programming that are quite different from the usual approach supported by structured programming languages. The book discusses these differences and focuses on the object-oriented problem-solving features that make computer problem solving a more natural activity.

The C++ language, developed at AT&T Bell Laboratories in 1983, is a hybrid language that provides a fusion of object-oriented programming functionality with the features of a traditional and efficient structured language, C. Data abstraction, encapsulation, inheritance and polymorphism are fully supported in C++.

This book is aimed at software development professionals, intermediate level and experienced programmers, and students learning C++ and object-oriented programming. It can be used as a supplement in a modern software engineering course, or as a supplement for courses on object-oriented programming or the C++ language. This book assumes the reader has programmed in C but has no experience with the concepts of object-oriented programming.

  1. Object-Oriented Programming
    1. Object-Oriented Problem Solving
    2. Classes, Objects, and Encapsulation
    3. Subclasses — Inheritance and Polymorphism
    4. Challenges in Object-Oriented Programming
      1. Partitioning Software into Classes
      2. Adding Functionality to an Existing Software System
      3. Hierarchical Structure of Types and Subtypes
  2. From C to Shining C++
    1. The Language and Its History
    2. How C++ Enhances C in Small Ways
      1. Comments
      2. Enumeration Names
      3. Struct or Class Names
      4. Declarations within Blocks
      5. Scope Qualifier Operator
      6. The Const Specifier
      7. Anonymous Unions
      8. Explicit Type Conversions
      9. Function Prototypes
      10. Overloading of Function Names
      11. Default Value for Function Parameters
      12. Functions with an Unspecified Number of Parameters
      13. Reference Parameters in a Function
      14. The Inline Specifier
      15. The New and Delete Operators
      16. Pointers to Void and Functions That Return Void
    3. How C++ Enhances C in Large Ways
      1. The Class Construct and Data Encapsulation
      2. Struct as a Special Case of a Class
      3. Constructors and Destructors
      4. Private, Protected, and Public Sections
      5. Objects and Messages
      6. Friends
      7. Overloading of Operators and Function Names in Classes
      8. Derived Classes
      9. Virtual Functions
      10. The Stream Library
  3. Getting Up to Speed with C++
    1. Comments
    2. Constants, Types, and Declarations
    3. C++ Operators
    4. Pass-by-Reference
    5. Pointers
    6. The Const Specifier
    7. Enumeration Types
    8. Anonymous Unions
    9. Explicit Type Conversion
    10. Functions
      1. Function Prototypes
      2. Inline Functions
      3. Default Arguments
      4. Overloading Function Names
      5. Functions with an Unspecified Number of Arguments
      6. Pointers to Functions and Generics
    11. Files and the Physical Organization of C++ Systems
  4. Data Encapsulation and Data Hiding Using Classes
    1. Procedural Languages, Data Abstraction, Encapsulation, and Data Hiding
    2. An Introduction to Classes in C++
    3. Self-Reference in Classes
    4. Constructors and Destructors
      1. Stack Abstract Data Type Implemented in a C++ Class
      2. Stack Abstract Data Type Implemented in Modula-2
    5. Class Objects as Members
    6. Vectors of Objects
    7. Friends
    8. Static Member of a Class
    9. Overloading of Operators
      1. Binary and Unary Operators
      2. Some Examples of Operator Overloading
      3. The <stream.h> Library
    10. Some Baseline Classes
      1. Generic Lists
      2. A Generic Search Table Implemented as a Binary Search Tree
        1. Modula-2 Encapsulation of Search_Table Abstraction
        2. C++ Encapsulation of Search_Table Abstraction
  5. Inheritance and Derived Classes
    1. The Derived Class Construct
    2. Derived Classes with Parent Class Constructors
    3. Some Examples of Derived Classes
      1. Derived Counter class
      2. The Class System at a University
      3. A Stack and Queue Derived from a Generic List
  6. Polymorphism and Virtual Functions
    1. Virtual Functions
    2. An Object-Oriented Solution to Generating a Linked List
      1. Nonpolymorphic Solution to Heterogeneous Linked List
      2. Object-Oriented Solution to Heterogeneous Linked List
      3. Maintenance on the Non-Object-Oriented and Object-Oriented Systems
    3. A Heterogeneous Search Tree Using Polymorphism
    4. Finite-State Machine Using Polymorphism
  7. Case Studies in Object-Oriented Programming
    1. A "Super Fast" Spelling Checker
      1. Specifications for Spelling Checker
      2. High-Level Design of Spelling Checker
      3. Low-Level Design of Spelling Checker
      4. Implementation of Spelling Checker
    2. Bank Teller Discrete Event Simulation
      1. Specifications for Queue Simulation
      2. High-Level Design for Queue Simulation
      3. Low-Level Design for Queue Simulation
      4. Implementation of Queue Simulation
      5. Simulation Output
      6. Maintenance of Queue Simulation
    3. Interactive Function Evaluator
      1. Specifications for Function Evaluator
      2. Review of Expression Trees
      3. High-Level Design of Function Evaluator
      4. Low-Level Design of Function Evaluator
      5. Full Implementation of Function Evaluator

Reviews

An Introduction to Object-Oriented Programming and C++

Reviewed by Roland Buresund

Very Good ******** (8 out of 10)

Last modified: May 21, 2007, 2:54 a.m.

This is an all-time classic. Brilliantly written. Don't miss out!

Comments

There are currently no comments

New Comment

required

required (not published)

optional

required

captcha

required