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
About Martin D. Carroll
Martin D. Carroll, a member of the technical staff at AT&T Bell Laboratories, has worked for a number of years on the design and implementation of reusable C++ libraries, including the AT&T Standard Components Library. He is a graduate of Rutgers University with a doctorate in computer science. Dr. Carroll is an active contributor to USENIX C++.
About Margaret A. Ellis has worked for AT&T Bell Laboratories, UNIX System Laboratories, and Novell in compiler development. Ellis received a masters of science degree in computer science from the University of California. She is the coauthor of The Annotated C++ Reference Manual.
Introduction To Reusability.
What is Reusability?
Myths of Reuse.
Obstacles to Reuse.
Is There Any Hope?
How This Book Can Help.Class Design.
A Minimal Standard Interface?
Shallow and Deep Copy.
Use of const.
Tradeoffs of Extensibility.
Extensibility and Inheritance.
Obstacles to Inheritability.
The Derived Assignment Problem.
Allowing Invasive Inheritance.
Efficiency and Reusability.
Free-Store and Stack Space.
Tradeoffs of Efficiency.
Errors in Reusable Code.
Good-Citizen Libraries .
Backward and Forward Compatibility.
Forms of Compatibility.
Source Compatibility in Theory.
Source Compatibility in Practice.
Rootedness, Depth, and Fanout.
Templates or Inheritance?
Should You Write Portable Code?
The Evolving Language Definition.
Legal, Nonportable Code.
Portable Data Files.
Other Portability Concerns.
Summary.Using Other Libraries.
Why Reuse Other Libraries?
Drawbacks of Reusing Other Libraries.
Documentation and Reusability.
The Design Paper.
The Static Initialization Problem.
The Principle of Localized Cost.
Endogenous and Exogenous Classes.