Register your product to gain access to bonus material or receive a coupon.
One of the important benefits of programming in C++ is its reuse capabilities. Designing and Implementing Reusable C++ illustrates and enumerates all of the tradeoffs involved in writing reusable code. The authors discuss the topics related to the software development of code reusability in the design of interfaces, the efficiency of implementations, portability, and compatibility. The advantages and disadvantages of the alternatives are discussed in depth so that programmers can make informed decisions. Novice and experienced programmers alike will benefit from the ideas presented by the authors to produce reusable C++ code.
020151284XB04062001
Introduction To Reusability.
What is Reusability?
Myths of Reuse.
Obstacles to Reuse.
Is There Any Hope?
How This Book Can Help.
Abstraction.
Regular Functions.
Nice Classes.
A Minimal Standard Interface?
Shallow and Deep Copy.
Interface Consistency.
Conversions.
Use of const.
Summary.
Tradeoffs of Extensibility.
Extensibility and Inheritance.
Inheritance Semantics.
Obstacles to Inheritability.
The Derived Assignment Problem.
Allowing Invasive Inheritance.
Summary.
Efficiency and Reusability.
Build Time.
Code Size.
Run Time.
Free-Store and Stack Space.
Tradeoffs of Efficiency.
Summary.
Errors in Reusable Code.
Error Detection.
Handling Errors.
Resource-Limit Errors.
Exception Safety.
Summary.
Global Names.
Macro Names.
Environmental Names.
Unclean Libraries.
Good-Citizen Libraries .
Summary.
Backward and Forward Compatibility.
Forms of Compatibility.
Source Compatibility in Theory.
Source Compatibility in Practice.
Link Compatibility.
Run Compatibility.
Process Compatibility.
Documenting Incompatibilities.
Undocumented Properties.
Summary.
Rootedness, Depth, and Fanout.
Hierarchy Styles.
Templates or Inheritance?
Summary.
Should You Write Portable Code?
The Evolving Language Definition.
Undefined Behavior.
Legal, Nonportable Code.
Implementation Dependencies.
Portable Data Files.
Template Instantiation.
Run-Time Libraries.
Other Portability Concerns.
Summary.
Why Reuse Other Libraries?
Drawbacks of Reusing Other Libraries.
Self-Contained Libraries.
Summary.
Documentation and Reusability.
The Design Paper.
Tutorials.
Reference Manual.
Summary.
The Static Initialization Problem.
The Principle of Localized Cost.
Endogenous and Exogenous Classes.
Iterators.
Class Coupling.
Deferring Decisions.
Summary. 020151284XT04062001