- 出版社: Addison-Wesley Professional; 1 (1996年5月13日)
- 平装: 304页
- 语种： 英语
- ISBN: 0201834545
- 条形码: 9780201834543, 0785342834543
- 商品尺寸: 16 x 1.8 x 23.1 cm
- 商品重量: 440 g
- ASIN: 0201834545
- 用户评分: 分享我的评价
- 亚马逊热销商品排名: 图书商品里排第1,615,626名 (查看图书商品销售排行榜)
Inside the C++ Object Model (英语) 平装 – 1996年5月13日
Stanley B. Lippman is Architect with the Visual C++ development team at Microsoft. Previously, he served as a Distinguished Consultant at the Jet Propulsion Laboratories (JPL). Stan spent more than twelve years at Bell Laboratories, where he worked with Bjarne Stroustrup on the original C++ implementation and the Foundation research project. After Bell Laboratories, Stan worked at Disney Feature Animation, originally as principal software engineer, then as software technical director on Fantasia 2000.
Layout Costs for Adding Encapsulation.
The C++ Object Model.
A Keyword Distinction.
An Object Distinction.
The Semantics of Constructors.
Default Constructor Construction.
Copy Constructor Construction.
Program Transformation Semantics.
Member Initialization List.
The Semantics of Data.
The Binding of a Data Member.
Data Member Layout.
Access of a Data Member.
Inheritance and the Data Member.
Object Member Efficiency.
Pointer to Data Members.
The Semantics of Function.
Varieties of Member Invocation.
Virtual Member Functions.
Semantics of Construction, Destruction, and Copy.
Object Construction without Inheritance.
Object Construction under Inheritance.
Object Copy Semantics.
Semantics of Destruction.
Object Construction and Destruction.
Operators new and delete.
On the Cusp of the Object Model.
Runtime Type Identification.
Efficient, but Inflexible.
|5 星 (0%)|
|4 星 (0%)|
|3 星 (0%)|
|2 星 (0%)|
|1 星 (0%)|
Reading this book is important if you are trying to decide whether to code in C or C++. You need to understand the overhead of C++, where it comes from and, at times, how to avoid it.
When debugging an understanding of how the compiler translates C++ code into machine language is essential. Lippmans book does not delve into code generation but it does provide a framework for understanding how the C++ object model is represented in machine language.
I'll be the first to admit that Lippman can go off on to some arcane tangents. He can spend a few pages discussing details that really have minimal effect on code execution. But I'm willing to forgive these diversions because so much of his book has contributed to my understanding of C++ and how it works.
Problem areas however are: * Cursory explanation of how templates, RTTI and exceptions are handled. * Reads more like a `cfront' rationale with examples from other compilers interspersed. That doesn't mean that the examples are limited. Just that it reads more like the author's experiences, rather than a totally objective view. * Doesn't clearly separate run-time effects that are artifacts of a particular implementation from things required by the Standard. * Lots of typos. Many of the figures don't co-incide with the text -- the text explains with one set of variables, and the figures show some other set, with some names transposed.