Navigating C++ and Object-Oriented Design (Bk/CD-ROM), 1st edition

  • Paul Anderson
  • Gail Anderson

Unfortunately, this item is not available in your country.

Overview


53274-7

Learn ANSI C++ right from the start!

If you're going to learn C++, learn it right from the start! Navigating C++ and Object-Oriented Design is the first book that teaches ANSI C++ and the object-oriented techniques that make C++ a software development breakthrough.

This comprehensive tutorial reflects the authors' extensive experience teaching C++ to professional developers. Start with the clearest introduction to object modeling you'll ever read. Then learn all the essentials of C++ and more advanced topics such as exceptions, namespaces, and dynamic memory allocation.

Next, discover C++ classes, the basic building block of object-oriented design. Through proven analogies and examples, the authors introduce containment and inheritance, overloading, templates, RTTI, and exception handling. And, the authors' unique presentation on multiple inheritance will give you invaluable insights into this complex topic.

Learn to apply C++ and object-oriented techniques to real-world development. Discover how to design classes effectively using the authors' class design boilerplate. Understand how to design container classes. Walk through class designs using the powerful OMT methodology.

Navigating C++ and Object-Oriented Design is one of the first C++ tutorials that covers in detail powerhouse ANSI C++ features like:

  • Namespaces, bool, member templates, and RTTI
  • Explicit, export, and nothrow versions of new and delete
  • The IOStream Library and Standard Template Library

Why learn C++ simply as a "better C" when you can write C++ code that really meets its potential? One book shows you how: Navigating C++ and Object-Oriented Design!

Table of contents



1. Getting Started.

Object-Oriented Design. Object Modeling Technique (OMT). Object Model Notation. Scenarios. Putting It All Together. Key Point Summary. Exercises.



2. C++ Basics.

Data Representation and Built-in Types. Preprocessor Directives. Comments. Type-Safe I/O. Operators and Expressions. Control Flow Constructs. Putting It All Together. Key Point Summary. Exercises.



3. C++ Program Structure.

Functions. Structures and Unions. References with Functions. Storage Classes. Exceptions. Namespaces. Dynamic Memory Allocation. Putting It All Together. Key Point Summary. Exercises.



4. Classes.

What Is Encapsulation? Classes. Constructors. Destructors. What's this? Exception Objects. Const Objects. Volatile Objects. Copy Constructors. The Problem with Public Data Members. Data Member Objects. Class Member Initialization. Putting It All Together. Key Point Summary. Exercises.



5. Working with Classes.

Using explicit. Object Lifetimes. Static Data Members. Static Member Functions. Static Objects. Arrays of Class Objects. Pointers to Class Members. Friend Classes. Nested Classes. Local Classes. Putting It All Together. Key Point Summary. Exercises.



6. Overloading.

Why Overload Functions? Function Overloading. Overloading Resolution. Why Overload Operators? Overloadable Operators. Operator Functions. Putting It All Together. Key Point Summary. Exercises.



7. Class Design.

What Is Class Design? A Class Design Boilerplate. A String Class. A Range Integer Class. Putting It All Together. Key Point Summary. Exercises.



8. Object Storage Management.

Global new and delete. Class-Specific new and delete. Reference Counts. Putting It All Together. Key Point Summary. Exercises.



9. Template Functions.

Why Should Functions Be Generic? Template Function Definition. Template Function Instantiation. Overloading Template Functions. Specializing Template Functions. Putting It All Together. Key Point Summary. Exercises.



10. Template Classes.

Why Should Classes Be Generic? Template Class Definition. Template Class Instantiation. Specializing Template Classes. Containment with Template Classes. Composite Templates. Template Class Static Members. Constant Expression Parameters. Template Friend Functions. Template Friend Classes. Template Nested Classes. Member Templates. Putting It All Together. Key Point Summary. Exercises.



11. Inheritance.

Why Use Inheritance? Public Derivation. Subtypes. Virtual Functions. Protected Access. Using Declarations. Private Derivation. Protected Derivation. Summary of Derivation Options. Polymorphism with a Generic PtrList Class. Abstract Base Classes. Virtual Constructors. A Class Design Boilerplate with Inheritance. Putting It All Together. Key Point Summary. Exercises.



12. Run-Time Type Identification.

Why Is RTTI Necessary? The Dynamic Cast Operator. The Typeid Operator. RTTI Applications. Putting It All Together. Key Point Summary. Exercises.



13. Exception Handling.

Why Use Exceptions? Designing with Exceptions. Exception Hierarchies. Resource Management. Uncaught Exceptions. Exception Specifications. Unexpected Exceptions. Putting It All Together. Key Point Summary. Exercises.



14. Multiple Inheritance.

Why Use Multiple Inheritance? Multiple Inheritance Format. Multiple Inheritance Characteristics. Distinct Base Classes (Pattern 1). Multiple Inclusion (Pattern 2). Virtual Base Classes (Pattern 3). Interface and Implementation. Putting It All Together. Key Point Summary. Exercises.



Appendix A. IOStream Library.

Why Use the IOStream Library? IOStream Overview. IOStream Examples.



Appendix B. Standard Template Library.

Why Use STL? STL Overview. STL Examples. STL References.



Appendix C. C++ Operator Precedence.

C++ Operator Precedence.



Index.

Published by Pearson (October 22nd 1997) - Copyright © 1998