Prix bas
CHF71.20
Habituellement expédié sous 2 à 4 semaines.
Recipient of Computer Language 1991 JOLT Cola Productivity Award
One of JOOP Magazine's Top Ten Books of the Decade (three years in a row)
A 1992 Stacey's best-seller
Continued critical acclaim in October 1995 Dr. Dobb's
Written by an expert in C++, Advanced C++ Programming Styles and Idioms looks at the design features of the C++ programming language. Assuming a background in the syntax of C++, 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. Using small, but rich examples, he shows how these abstractions can be combined to use the language effectively. Experienced C++ programmers will appreciate the comprehensive coverage of Release 3.0.
0201548550B04062001
Auteur
James 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
Résumé
Looks at the design features of the C++ programming language. Assuming a background in the syntax of C++, it shows how to become an expert C++ programmer by learning the idioms of the language.
Contenu
Preface.
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 <B