
Object-Oriented Programming Using C++
Ira Pohl(Author)
Addison Wesley (Publisher)
2nd Edition
Published on 31. January 1997
Book
Paperback/Softback
568 pages
978-0-201-89550-6 (ISBN)
Description
Object-Oriented Programming Using C++, Second Editionprovides the experienced programmer with a clear and thorough introduction tothe object-oriented paradigm using ANSI C++. Each chapter introduces you tospecific C++ language features that support object-oriented programmingconcepts, including the most recent additions to the language such as STL,namespaces, RTTI, and the bool type. Best-selling author and C++ authority,Ira Pohl, employs his trademark approach of "dissection" todemonstrate key programming elements and idioms and to teach you how toevaluate tradeoffs and make critical design choices. Features *Reflects the latest developments in the C++ ANSI standard includingsubstantial detail on the new STL libraries. *Explains how an object-oriented programming concept is supported by alanguage feature. *Teaches by example, introducing you to full working programs right fromthe start. *Incorporates interactive, proven exercises to help check your understandingof key OO concepts and put them into practice. *Provides code for all example programs covered in the book, as well asadjunct programs that illustrate points made in the book. 0201895501B04062001
More details
Series
Edition
2nd edition
Language
English
Place of publication
Harlow
United Kingdom
Publishing group
Pearson Education Limited
Target group
College/higher education
Dimensions
Height: 230 mm
Width: 185 mm
Thickness: 30 mm
Weight
916 gr
ISBN-13
978-0-201-89550-6 (9780201895506)
Copyright in bibliographic data and cover images is held by Nielsen Book Services Limited or by the publishers or by their respective licensors: all rights reserved.
Schweitzer Classification
Other editions
Previous edition
Book
03/1993
Benjamin Cummings
€58.38
Article exhausted; check for reprint
Person
Ira Pohl is a Professor of Computer Science at the University of California, Santa Cruz and holds a Ph.D. in Computer Science from Stanford University. His research interests include artificial intelligence, the C and C++ programming languages, practical complexity problems, heuristic search methods, deductive algorithms, and educational and social issues. He originated error analysis in heuristic search methods and deductive algorithms.
Professor Pohl was formerly a Mackay professor at University of California- Berkeley and a ZWO fellow in the Netherlands. He is the author or co-author of Object-Oriented Programming Using C++, C++ Distilled: A Concise Ansi/Iso Reference and Style Guide, C by Dissection: The Essentials of C Programming, A Book on C: Programming in C, C++ for C Programmers, C++ for Fortran Programmers, C++ for Pascal Programmers, and Turbo C: The Essentials of C Programming, all published by Addison-Wesley.
0201895501AB04062001
Professor Pohl was formerly a Mackay professor at University of California- Berkeley and a ZWO fellow in the Netherlands. He is the author or co-author of Object-Oriented Programming Using C++, C++ Distilled: A Concise Ansi/Iso Reference and Style Guide, C by Dissection: The Essentials of C Programming, A Book on C: Programming in C, C++ for C Programmers, C++ for Fortran Programmers, C++ for Pascal Programmers, and Turbo C: The Essentials of C Programming, all published by Addison-Wesley.
0201895501AB04062001
Content
1. Why Object-Oriented Programming in C++.
Object-Oriented Programming.
Why C++ is a Better C.
Encapsulation and Type Extensibility.
Construction of Objects.
Conversions, Operators, and Seamless Types.
Inheritance.
Polymorphism.
Benefits of Object-Oriented Programming.
2. Native Types and Statements.
Program Elements.
Input and Output.
Program Structure.
Simple Types.
The Traditional Conversions.
Enumeration Types.
Expressions.
Statements.
3. Functions and Pointers.
Functions.
Function Definition.
The RETURN Statement.
Function Prototypes.
Default Arguments.
Overloading Functions.
Inlining.
Scope.
Storage Class.
Pointer Types.
Reference Declarations and Call-By-Reference.
The Use of VOID.
Arrays and Pointers.
The Relationship Between Arrays and Pointers.
Passing Arrays to Functions.
Strings: A Kernel Language ADT.
Multidimensional Arrays.
Free Storage Operators NEW and DELETE.
4. Implementing ADTs in the Base Language.
The Aggregate Type STRUCT.
Structure Pointer Operator.
An Example: Stack.
Unions.
Complex Numbers.
An Example: Flushing.
Bit Fields.
An Example: Dynamic Arrays.
5. Data Hiding and Member Functions.
Member Functions.
Visibility PRIVATE and PUBLIC.
Classes.
Class Scope.
STATIC Member.
An Example: Revisiting Flushing.
The THIS Pointer.
STATIC and CONST Member Functions.
Containers and Items Access.
6. Object Creation.
Classes with Constructors.
Construction a Dynamically Sized Stack.
Classes with Destructors.
An Example: Dynamically Allocated Strings.
A Class.
Members That Are Class Types.
An Example: A Singly Linked List.
Polynomials as a Linked List.
Strings Using Reference Semantics.
No Constructor Copy Constructor, and Other Mysteries.
7. Ad Hoc Polymorphism.
Class-Defined Conversion.
Overloading and Function Selection.
FRIEND Functions.
Overloading Operators.
Unary Operator Overloading.
Binary Operator Overloading.
Overloading Assignment and Subscripting Operators.
More Signature Matching.
Polynomial: Type and Language Expectations.
8. Visitation: Iterators and Containers.
Visitation.
Iterators.
An Example: QUICKSORT.
Friendly Classes and Iterators.
Overloading Operator () for Indexing.
Overloading NEW and DELETE.
Pointer Operators and Smart Pointers.
Genericity with VOID.
9. Inheritance: Subtyping and Code Reuse.
A Derived Class.
Typing Conversions and Visibility.
Code Reuse: A Dynamic Array Bounds.
Code Reuse: A Binary Tree Class.
Virtual Functions.
Abstract Base Classes.
Multiple Inheritance.
Inheritance and Design.
Detailed C++ Considerations.
10. Parametric Polymorphism.
Template Class Stack.
Function Templates.
Class Templates.
Parameterizing the Class VECT.
Parameterizing QUICKSORT.
Parameterized Binary Search Tree.
Inheritance.
Ownership and Design Issues.
Detailed Considerations.
11. Exceptions.
Using ASSERT.H.
Using SIGNAL.H.
C++ Exceptions.
Throwing Exceptions.
TRY Blocks.
Handlers.
Exception Specification.
TERMINATE () and UNEXPECTED().
Example Exception Code.
The Philosophy of Error Recovery.
12. OOP Using C++.
OOP Language Requirements.
ADTs in Non-OOP Languages.
Clients and Manufacturers.
Reuse and Inheritance.
Polymorphism.
Language Complexity.
C++ OOP Bandwagon.
Platonism: Tabula Rasa Design.
Design Principles.
Schema, Diagrams and Tools.
Last Word.
Appendices.
ASCII Character Codes.
Operator Precedence and Associativity.
C++ Language Guide.
Input and Output.
Index. 0201895501T04062001
Object-Oriented Programming.
Why C++ is a Better C.
Encapsulation and Type Extensibility.
Construction of Objects.
Conversions, Operators, and Seamless Types.
Inheritance.
Polymorphism.
Benefits of Object-Oriented Programming.
2. Native Types and Statements.
Program Elements.
Input and Output.
Program Structure.
Simple Types.
The Traditional Conversions.
Enumeration Types.
Expressions.
Statements.
3. Functions and Pointers.
Functions.
Function Definition.
The RETURN Statement.
Function Prototypes.
Default Arguments.
Overloading Functions.
Inlining.
Scope.
Storage Class.
Pointer Types.
Reference Declarations and Call-By-Reference.
The Use of VOID.
Arrays and Pointers.
The Relationship Between Arrays and Pointers.
Passing Arrays to Functions.
Strings: A Kernel Language ADT.
Multidimensional Arrays.
Free Storage Operators NEW and DELETE.
4. Implementing ADTs in the Base Language.
The Aggregate Type STRUCT.
Structure Pointer Operator.
An Example: Stack.
Unions.
Complex Numbers.
An Example: Flushing.
Bit Fields.
An Example: Dynamic Arrays.
5. Data Hiding and Member Functions.
Member Functions.
Visibility PRIVATE and PUBLIC.
Classes.
Class Scope.
STATIC Member.
An Example: Revisiting Flushing.
The THIS Pointer.
STATIC and CONST Member Functions.
Containers and Items Access.
6. Object Creation.
Classes with Constructors.
Construction a Dynamically Sized Stack.
Classes with Destructors.
An Example: Dynamically Allocated Strings.
A Class.
Members That Are Class Types.
An Example: A Singly Linked List.
Polynomials as a Linked List.
Strings Using Reference Semantics.
No Constructor Copy Constructor, and Other Mysteries.
7. Ad Hoc Polymorphism.
Class-Defined Conversion.
Overloading and Function Selection.
FRIEND Functions.
Overloading Operators.
Unary Operator Overloading.
Binary Operator Overloading.
Overloading Assignment and Subscripting Operators.
More Signature Matching.
Polynomial: Type and Language Expectations.
8. Visitation: Iterators and Containers.
Visitation.
Iterators.
An Example: QUICKSORT.
Friendly Classes and Iterators.
Overloading Operator () for Indexing.
Overloading NEW and DELETE.
Pointer Operators and Smart Pointers.
Genericity with VOID.
9. Inheritance: Subtyping and Code Reuse.
A Derived Class.
Typing Conversions and Visibility.
Code Reuse: A Dynamic Array Bounds.
Code Reuse: A Binary Tree Class.
Virtual Functions.
Abstract Base Classes.
Multiple Inheritance.
Inheritance and Design.
Detailed C++ Considerations.
10. Parametric Polymorphism.
Template Class Stack.
Function Templates.
Class Templates.
Parameterizing the Class VECT.
Parameterizing QUICKSORT.
Parameterized Binary Search Tree.
Inheritance.
Ownership and Design Issues.
Detailed Considerations.
11. Exceptions.
Using ASSERT.H.
Using SIGNAL.H.
C++ Exceptions.
Throwing Exceptions.
TRY Blocks.
Handlers.
Exception Specification.
TERMINATE () and UNEXPECTED().
Example Exception Code.
The Philosophy of Error Recovery.
12. OOP Using C++.
OOP Language Requirements.
ADTs in Non-OOP Languages.
Clients and Manufacturers.
Reuse and Inheritance.
Polymorphism.
Language Complexity.
C++ OOP Bandwagon.
Platonism: Tabula Rasa Design.
Design Principles.
Schema, Diagrams and Tools.
Last Word.
Appendices.
ASCII Character Codes.
Operator Precedence and Associativity.
C++ Language Guide.
Input and Output.
Index. 0201895501T04062001