Special Offers see all
More at Powell'sRecently Viewed clear list |
$59.99
New Trade Paper
Ships in 1 to 3 days
available for shipping or prepaid pickup only
Available for In-store Pickup
in 7 to 12 days
More copies of this ISBNAdvanced C++ Programming Styles and Idiomsby James O. Coplien
Synopses & ReviewsPublisher Comments:
Book News Annotation:Assuming a background in C++ basics, this book helps programmers to develop their programming expertise by giving a feel for the styles and idioms of the language. The approach is organized around the abstractions that C++ supports: abstract data types, combining types in inheritance structures, object-oriented programming, and multiple inheritance. Also explored are idioms that the core of the C++ language does not support directly, such as virtual constructors, prototype objects, and advanced garbage collection techniques.
Annotation c. Book News, Inc., Portland, OR (booknews.com) Synopsis:Coplien shows how to become an expert C++ programmer by learning the idioms of the language. His approach is organized around the abstractions that C++ supports: abstract data types, combining types in inheritance structures, object-oriented programming, and multiple inheritance.
About the AuthorJames O. Coplien is a premier expert and writer on the object paradigm and C++, having worked with the language since its inception at AT&T. Currently a member of Bell Laboratories Research at Lucent Technologies, his work focuses on multi-paradigm development methods and organizational anthropology for software development processes. His previous books include Pattern Languages of Program Design (with Douglas C. Schmidt), Pattern Languages of Program Design, Volume 2 (with John M. Vlissides and Norman L. Kerth), and Advanced C++ Programming Styles and Idioms.
0201548550AB04062001 Table of ContentsPreface.
1. Introduction.
C++: An Evolving Language.
Handling Complexity with Idioms.
Objects for the Nineties.
Design and Language.
2. Data Abstraction and Abstract Data Types.
Classes.
Object Inversion.
Constructors and Destructors.
Inline Functions.
Initialization of Static Data Members.
Static Member Functions.
Scoping and const.
Initialization Ordering of Global Objects, Constants, and Static Class Members.
Enforcement of const for Class Object Member Functions.
Pointers to Member Functions.
Program Organization Conventions.
3. Concrete Data Types.
The Orthodox Canonical Class Form.
Scoping and Access Control.
Overloading: Redefining the Semantics of Operators and Functions.
Type Conversion.
Reference Counting: Making Variables Use “Magic Memory.”
Operators new and delete.
Separating Initialization from Instantiation.
4. Inheritance.
Simple Inheritance.
Scoping and Access Control.
Constructors and Destructors.
Class Pointer Conversion.
Type Selector Fields.
5. Object-Oriented Programming.
C++ Run-Time Type Support: Virtual Functions.
Destructor Interaction and Virtual Destructors.
Virtual Functions and Scoping.
Pure Virtual Functions and Abstract Base Classes.
Envelope and Letter Classes.
Functors: Functions as Objects.
Multiple Inheritance.
The Inheritance Canonical Form.
6. Object-Oriented Design.
Types and Classes.
The Activities of Object-Oriented Design.
Object-Oriented Analysis and Domain Analysis.
Object and Class Relationships.
Subtyping, Inheritance and Forwarding.
Rules of Thumb for Subtyping, Inheritance, and Independence.
7. Reuse and Objects.
All Analogies Break Down Somewhere.
Design Reuse.
Four Code Reuse Mechanisms.
Parameterized Types, or Templates.
Private Inheritance: Does Inheritance Support Reuse?
Storage Reuse.
Interface Reuse: Variants.
Reuse, Inheritance, and Forwarding.
Architectural Alternatives for Source Reuse.
Generalizations on Reuse and Objects.
8. Programming with Exemplars in C++.
An Example: Employee Exemplars.
Exemplars and Generic Constructors: The Exemplar Community Idiom.
Autonomous Generic Constructors.
Abstract Base Exemplars.
Toward a Frame Exemplar Idiom.
A Word About Notation.
Exemplars and Program Administration.
9. Emulating Symbolic Language Styles in C++.
Incremental C++ Development.
Symbolic Canonical Form.
An Example: A General Collection Class.
Code and Idioms To Support Incremental Loading.
Garbage Collection.
Primitive Type Encapsulation.
Multi-Methods under the Symbolic Idiom.
10. Dynamic Multiple Inheritance.
An Example: A Multi-Technology Window System.
Caveats.
11. Systemic Issues.
Static System Design.
Dynamic System Design.
Appendix A: C in a C++ Environment.
Function Calls.
Function Parameters.
Function Prototypes.
Call-by-Reference Parameters.
Variable Number of Parameters.
Function Pointers.
The const Type Modifier.
Interfacing with C Code.
Appendix B: Shapes Program: C++ Code.
Appendix C: Reference Return Values from Operators.
Appendix D: Why Bitwise Copy Doesn’t Work.
Why Member-by-Member Copy Isn’t a Panacea.
Appendix E: Symbolic Shapes.
Appendix F: Block-Structured Programming in C++.
What is Block-Structured Programming?
Basic Building Blocks for Structured C++ Programming.
An Alternative for Blocks with Deeply Nested Scopes.
Implementation Considerations Block-Structure Video Game Code.
Index. 0201548550T04062001 What Our Readers Are SayingBe the first to add a comment for a chance to win!Product Details
Other books you might likeRelated SubjectsComputers and Internet » Computer Languages » C++ |
|||||||||
|
|
||||||||||
|
|
||||||||||