Advanced C++ programming styles and idioms

by James O. Coplien

Paper Book, 1992

Status

Available

Call number

005.262

Library's review

Indeholder "Preface", "Contents", "Chapter 1. Introduction", " 1.1 C++: An Evolving Language", " 1.2 Handling Complexity with Idioms", " 1.3 Objects for the Nineties", " 1.4 Design and Language", " References", "Chapter 2. Data Abstraction and Abstract Data Types", " 2.1 Classes", " 2.2 Object Inversion", " 2.3 Constructors and Destructors", " 2.4 Inline Functions", " 2.5 Initialization of Static Data Members", " 2.6 Static Member Functions", " 2.7 Scoping and const", " 2.8 Initialization Ordering of Global Objects, Constants, and Static Class Members", " 2.9 Enforcement of const for Class Object Member Functions", " 2.10 Pointers to Member Functions", " 2.11 Program Organization Conventions.", " Exercises", " References", "Chapter 3. Concrete Data Types", " 3.1 The Orthodox Canonical Class Form", " 3.2 Scoping and Access Control", " 3.3 Overloading: Redefining the Semantics of Operators and Functions", " 3.4 Type Conversion", " 3.5 Reference Counting: Making Variables Use 'Magic Memory'", " 3.6 Operators new and delete", " 3.7 Separating Initialization from Instantiation.", " Exercises", " References", "Chapter 4. Inheritance", " 4.1 Simple Inheritance", " 4.2 Scoping and Access Control", " 4.3 Constructors and Destructors", " 4.4 Class Pointer Conversion", " 4.5 Type Selector Fields.", " Exercises", " References", "Chapter 5. Object-Oriented Programming", " 5.1 C++ Run-Time Type Support: Virtual Functions", " 5.2 Destructor Interaction and Virtual Destructors", " 5.3 Virtual Functions and Scoping", " 5.4 Pure Virtual Functions and Abstract Base Classes", " 5.5 Envelope and Letter Classes", " 5.6 Functors: Functions as Objects", " 5.7 Multiple Inheritance", " 5.8 The Inheritance Canonical Form.", " Exercises", " Queue Iterator Example", " Simple Banking Account Application Classes", " References", "Chapter 6. Object-Oriented Design", " 6.1 Types and Classes", " 6.2 The Activities of Object-Oriented Design", " 6.3 Object-Oriented Analysis and Domain Analysis", " 6.4 Object and Class Relationships", " 6.5 Subtyping, Inheritance and Forwarding", " 6.6 Rules of Thumb for Subtyping, Inheritance, and Independence", " Exercises", " References", "Chapter 7. Reuse and Objects", " 7.1 All Analogies Break Down Somewhere", " 7.2 Design Reuse", " 7.3 Four Code Reuse Mechanisms", " 7.4 Parameterized Types, or Templates", " 7.5 Private Inheritance: Does Inheritance Support Reuse?", " 7.6 Storage Reuse", " 7.7 Interface Reuse: Variants", " 7.8 Reuse, Inheritance, and Forwarding", " 7.9 Architectural Alternatives for Source Reuse", " 7.10 Generalizations on Reuse and Objects", " Exercises", " References", "Chapter 8. Programming with Exemplars in C++", " 8.1 An Example: Employee Exemplars", " 8.2 Exemplars and Generic Constructors: The Exemplar Community Idiom", " 8.3 Autonomous Generic Constructors", " 8.4 Abstract Base Exemplars", " 8.5 Toward a Frame Exemplar Idiom", " 8.6 A Word About Notation", " 8.7 Exemplars and Program Administration", " Exercises", " Exemplar-Based Simple Parser", " Frame-Based Exemplars", " References", "Chapter 9. Emulating Symbolic Language Styles in C++", " 9.1 Incremental C++ Development", " 9.2 Symbolic Canonical Form", " 9.3 An Example: A General Collection Class", " 9.4 Code and Idioms To Support Incremental Loading", " 9.5 Garbage Collection", " 9.6 Primitive Type Encapsulation", " 9.7 Multi-Methods under the Symbolic Idiom", " Exercises", " References", "Chapter 10. Dynamic Multiple Inheritance", " 10.1 An Example: A Multi-Technology Window System", " 10.2 Caveats", "Chapter 11. Systemic Issues", " 11.1 Static System Design", " 11.2 Dynamic System Design", " References", "Appendix A: C in a C++ Environment", " A.1 Function Calls", " A.2 Function Parameters", " A.3 Function Prototypes", " A.4 Call-by-Reference Parameters", " A.5 Variable Number of Parameters", " A.6 Function Pointers", " A.7 The const Type Modifier", " A.8 Interfacing with C Code", " Exercises", " References", "Appendix B: Shapes Program: C++ Code", "Appendix C: Reference Return Values from Operators", "Appendix D: Why Bitwise Copy Doesn't Work", " D.1 Why Member-by-Member Copy Isn't a Panacea", "Appendix E: Symbolic Shapes", "Appendix F: Block-Structured Programming in C++", " F.1 What is Block-Structured Programming?", " F.2 Basic Building Blocks for Structured C++ Programming", " F.3 An Alternative for Blocks with Deeply Nested Scopes", " F.4 Implementation Considerations", " Exercises", " Block-Structure Video Game Code", " References", "Index".

Nu har jeg aldrig kodet andet end småting i C++, så jeg har ikke kigget meget i den her bog.
… (more)

Publication

Reading, Mass. : Addison-Wesley, 1992.

Description

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.

User reviews

LibraryThing member persky
Scott Meyers has described this as "the LSD book, because it is purple and it will expand your mind". I used to browse the copy in my thesis lab -- a fun guide to learning the ins and out of C++ by breaking it...
LibraryThing member jsburbidge
This is one of the absolutely classic books on C++, although it shows its age in that it precedes the language of patterns, while discussing "idioms" which are strongly pattern-like. This should be required reading for any half-serious C++ programmer.

Language

Original language

English

Physical description

xxiv, 520 p.; 23.1 cm

ISBN

0201548550 / 9780201548556

Local notes

Omslag: Ikke angivet
Omslaget viser titel og forfatternavn som tekst
Indskannet omslag - N650U - 150 dpi
Page: 0.2623 seconds