Inside the C++ Object Model focuses on the underlying mechanisms that support object-oriented programming within C++: constructor semantics, temporary generation, support for encapsulation, inheritance, and "the virtuals"--virtual functions and virtual inheritance. This book shows how your understanding the underlying implementation models can help you code more efficiently and with greater confidence. Lippman dispells the misinformation and myths about the overhead and complexity associated with C++, while pointing out areas in which costs and trade offs, sometimes hidden, do exist. He then explains how the various implementation models arose, points out areas in which they are likely to evolve, and why they are what they are. He covers the semantic implications of the C++ object model and how that model affects your programs.
Explores the program behavior implicit in the C++ Object Model's support of object-oriented programming.
Explains the basic implementation of the object-oriented features and the trade offs implicit in those features.
Examines the impact on performance in terms of program transformation.
Provides abundant program examples, diagrams, and performance measurements to relate object-oriented concepts to the underlying object model.
If you are a C++ programmer who desires a fuller understanding of what is going on "under the hood," then Inside the C++ Object Model is for you!
Get a value-added service! Try out all the examples from this book at www.codesaw.com. CodeSaw is a free online learning tool that allows you to experiment with live code from your book right in your browser.
Table of Contents
1. Object Lessons
- Layout Costs for Adding Encapsulation
- 1.1. The C++ Object Model
- 1.2. A Keyword Distinction
- 1.3. An Object Distinction
2. The Semantics of Constructors
- 2.1. Default Constructor Construction
- 2.2. Copy Constructor Construction
- 2.3. Program Transformation Semantics
- 2.4. Member Initialization List
3. The Semantics of Data
- 3.1. The Binding of a Data Member
- 3.2. Data Member Layout
- 3.3. Access of a Data Member
- 3.4. Inheritance and the Data Member
- 3.5. Object Member Efficiency
- 3.6. Pointer to Data Members
4. The Semantics of Function
- 4.1. Varieties of Member Invocation
- 4.2. Virtual Member Functions
- 4.3. Function Efficiency
- 4.4. Pointer-to-Member Functions
- 4.5. Inline Functions
5. Semantics of Construction, Destruction, and Copy
- Presence of a Pure Virtual Destructor
- Presence of a Virtual Specification
- Presence of const within a Virtual Specification
- A Reconsidered Class Declaration
- 5.1. Object Construction without Inheritance
- 5.2. Object Construction under Inheritance
- 5.3. Object Copy Semantics
- 5.4. Object Efficiency
- 5.5. Semantics of Destruction
- 6. Runtime Semantics
7. On the Cusp of the Object Model
- 7.1. Templates
- 7.2. Exception Handling
- 7.3. Runtime Type Identification
- 7.4. Efficient, but Inflexible?
- Title: Inside the C++ Object Model
- Release date: May 1996
- Publisher(s): Addison-Wesley Professional
- ISBN: 0201834545