C++ in Action: Industrial-strength Programming Techniques (Paperback)
Bartosz Milewski
- 出版商: Addison Wesley
- 出版日期: 2001-06-01
- 售價: $1,560
- 貴賓價: 9.5 折 $1,482
- 語言: 英文
- 頁數: 485
- 裝訂: Paperback
- ISBN: 0201699486
- ISBN-13: 9780201699487
-
相關分類:
C++ 程式語言
立即出貨(限量)
買這商品的人也買了...
-
$1,460$1,387 -
$199Enterprise Java Servlets (Paperback)
-
$520$442 -
$399Applied .NET: Developing People-Oriented Software Using C#
-
$1,320$1,254 -
$1,750$1,663 -
$1,030$979 -
$1,460$1,387 -
$1,750$1,663 -
$1,320$1,254 -
$299.NET Programming: A Practical Guide Using C# (Paperback)
-
$1,750$1,663 -
$1,030$979 -
$1,580$1,501 -
$99ASP.NET Web Development with Macromedia Dreamweaver MX 2004 (Paperback)
-
$1,400$1,330 -
$550$495 -
$1,750$1,663 -
$660$627 -
$760$600 -
$650$585 -
$550$468 -
$780$616 -
$780$663 -
$580$452
商品描述
Description
C++: Proven techniques for building -- and maintaining -- industrial-strength Windows software.
- Extensive coverage of resource management -- a crucial technique for building robust, maintainable systems.
- Detailed coverage of large-scale software projects: strategies, techniques, management, planning, and project dynamics.
- CD-ROM includes extensive C++ source code library.
Bartosz Milewski has been programming since 1986, and teaching C++ since 1994. He is President of Reliable Software, a firm specializing in creating high-quality productivity tools for programmers. Previously, he was architect and programming lead for Microsoft Index Server, a successful commercial application now integrated in Windows 2000. Milewski holds a Ph.D in theoretical physics.
Table Of Contents
Introduction. Language.
Techniques.
Windows.
Scaling Up.
How to Use this Book.
Language.
Techniques.
Windows.
Scaling Up.
How to Use this Book.
Language.
Objects and Scopes.
Global scope.
Local Scope.
Embedded objects.
Inheritance.
Member functions and Interfaces.
Member function scope.
Types.
Summary.
Exercises.
Abstract Data Types.
Exercises.
Local Scope.
Embedded objects.
Inheritance.
Member functions and Interfaces.
Member function scope.
Types.
Summary.
Exercises.
Abstract Data Types.
Exercises.
Arrays and references.
References.
Operators.
Arithmetic.
Logic.
Bitwise Logic.
Stack-based calculator.
Functional Specification.
Design.
Stubbed Implementation.
Implementation.
Exercises.
Operators.
Arithmetic.
Logic.
Bitwise Logic.
Stack-based calculator.
Functional Specification.
Design.
Stubbed Implementation.
Implementation.
Exercises.
Pointers.
Pointers.
Pointers vs. References.
Pointers vs. Arrays.
Assembly Digression.
Exercises.
Pointers and Dynamic Memory Allocation.
Dynamic Data Structures.
Dynamic Stack.
Linked List.
String Table.
String Buffer.
Table Lookup.
Hash Table.
Test Program.
Exercises.
Pointers vs. References.
Pointers vs. Arrays.
Assembly Digression.
Exercises.
Pointers and Dynamic Memory Allocation.
Dynamic Data Structures.
Dynamic Stack.
Linked List.
String Table.
String Buffer.
Table Lookup.
Hash Table.
Test Program.
Exercises.
Polymorphism.
The Meaning of is-a.
Implementation Digression.
The Overhead.
Parse Tree.
C Digression.
Exercises.
Implementation Digression.
The Overhead.
Parse Tree.
C Digression.
Exercises.
Small Software Project.
Software Project.
Specification.
Stubbed Implementation.
Expanding Stubs.
Scanner.
Symbol Table.
Store.
Function Table.
Nodes.
Parser.
Main.
Initialization of Aggregates.
Exercises.
Procedural Programming.
Operator Overloading.
Passing by Value.
Value Semantics.
Techniques.
Specification.
Stubbed Implementation.
Expanding Stubs.
Scanner.
Symbol Table.
Store.
Function Table.
Nodes.
Parser.
Main.
Initialization of Aggregates.
Exercises.
Procedural Programming.
Operator Overloading.
Passing by Value.
Value Semantics.
Techniques.
The Cleanup.
Decoupling the Output.
Fighting Defensive Programming.
A Case of Paranoid Programming.
Fringes.
Improving Communication Between Classes.
Correcting Design Flaws.
Hiding Implementation Details.
Using Embedded Classes.
Combining Classes.
Combining Things using Namespaces.
Hiding Constants in Enumerations.
Hiding Constants in Local Variables.
Fighting Defensive Programming.
A Case of Paranoid Programming.
Fringes.
Improving Communication Between Classes.
Correcting Design Flaws.
Hiding Implementation Details.
Using Embedded Classes.
Combining Classes.
Combining Things using Namespaces.
Hiding Constants in Enumerations.
Hiding Constants in Local Variables.
Sharing.
Isolating Global Program Parameters.
Pushing the Envelope.
Templates.
Exercises.
Pushing the Envelope.
Templates.
Exercises.
Removing Limitations.
Dynamic Array.
Dynamic MultiNode.
Dynamic StringBuffer.
Dynamic SymbolTable.
Dynamic Store.
Standard Vector.
Dynamic MultiNode.
Dynamic StringBuffer.
Dynamic SymbolTable.
Dynamic Store.
Standard Vector.
Resource Management.
Exceptions.
Stack Unwinding.
Resources.
Ownership of Resources.
Access to Resources.
Smart Pointers.
Ownership Transfer: First Attempt.
Ownership Transfer: Second Attempt.
Safe Containers.
Iterators.
Error Propagation.
Conversion to Resource Management.
Conclusion.
Stack Unwinding.
Resources.
Ownership of Resources.
Access to Resources.
Smart Pointers.
Ownership Transfer: First Attempt.
Ownership Transfer: Second Attempt.
Safe Containers.
Iterators.
Error Propagation.
Conversion to Resource Management.
Conclusion.
Making Use of the STL.
Reference Counting and Copy-On-Write.
End of Restrictions.
Getting Rid of C-Strings.
Exploring Streams.
End of Restrictions.
Getting Rid of C-Strings.
Exploring Streams.
Serialization and Deserialization.
The Calculator Object.
Command Parser.
Serialization and Deserialization.
In-Memory (De-) Serialization.
Multiple Inheritance.
Conclusion.
Command Parser.
Serialization and Deserialization.
In-Memory (De-) Serialization.
Multiple Inheritance.
Conclusion.
Overloading Operator new.
Class-specific new.
Caching.
Bulk Allocation.
Array new.
Global new.
Macros.
Tracing Memory Leaks.
Debug Output.
Placement new.
Windows.
Caching.
Bulk Allocation.
Array new.
Global new.
Macros.
Tracing Memory Leaks.
Debug Output.
Placement new.
Windows.
Libraries.
Of Macros and Wizards.
Programming Paradigm.
Hello Windows!
Encapsulation.
Encapsulation.
Controlling Windows through C++.
Model-View-Controller.
Exception Specification.
Cleanup.
Exception Specification.
Cleanup.
Painting.
Application Icon.
Window Painting and the View Object.
The Canvas.
The WM_PAINT Message.
The Model.
Capturing the Mouse.
Adding Colors and Frills.
Window Painting and the View Object.
The Canvas.
The WM_PAINT Message.
The Model.
Capturing the Mouse.
Adding Colors and Frills.
Windows Application.
Porting the Calculator to Windows.
User Interface.
Child Windows.
Windows Controls.
Static Text.
Edit Control.
Window Subclassing.
Plugging in the Calculator.
List Box Control.
Model-View Feedback Loop.
Commands and Menus.
Dynamic Menus.
Dialogs.
Exercises.
User Interface.
Child Windows.
Windows Controls.
Static Text.
Edit Control.
Window Subclassing.
Plugging in the Calculator.
List Box Control.
Model-View Feedback Loop.
Commands and Menus.
Dynamic Menus.
Dialogs.
Exercises.
Scaling Up.
About Software.
Complexity.
The Fractal Nature of Software.
The Living Project.
The Living Programmer.
The Fractal Nature of Software.
The Living Project.
The Living Programmer.
Design Strategies.
Top-Down Object Oriented Design.
Model-View-Controller.
Documentation.
Requirement Specification.
Architecture Specification.
Model-View-Controller.
Documentation.
Requirement Specification.
Architecture Specification.
Team Work.
Productivity.
Team Strategies.
Team Strategies.
Implementation Strategies.
Global Decisions.
Top-Down Object Oriented Implementation.
Program Modifications.
Inheriting Legacy Code.
Multi-platform development.
Top-Down Object Oriented Implementation.
Program Modifications.
Inheriting Legacy Code.
Multi-platform development.
Porting.
Creating an Abstraction Layer.
Porting the Calculator.
Eliminating Simple Windows Dependencies.
Non-trivial Windows Dependencies.
The Advantages of Porting.
Porting the Calculator.
Eliminating Simple Windows Dependencies.
Non-trivial Windows Dependencies.
The Advantages of Porting.
Bibliography.
Appendices.
Exercise Solutions.
Transactions.
Transient Transactions.
Persistent Transactions.
The Three-File Scheme.
The Mapping-File Scheme. 0201699486T04062001
Transient Transactions.
Persistent Transactions.
The Three-File Scheme.
The Mapping-File Scheme. 0201699486T04062001
