Organization of the Book
Chapter 2, "Standard Briefing: The Latest Addenda to ANSI/ISO C++," presents some of the key terms
that are used in the C++ Standard, and which are used extensively in this book. Following this, the recent
changes and extensions to C++ are described. Finally, Chapter 2 gives an overview of the deprecated
features that are listed in the Standard, and suggests standard-conforming replacements for them.
Chapter 3, "Operator Overloading," explores the benefits as well as the potential problems of operator
overloading. It discusses the restrictions that apply to operator overloading and explains how to use
conversion operators.
Chapter 4, "Special Member Functions: Default Constructor, Copy Constructor, Destructor, and
Assignment Operator," explains the semantics of the special member functions and their role in class
design. It also demonstrates several techniques and guidelines for an effective usage of these special
member functions.
Chapter 5, "Object-Oriented Programming and Design," provides a brief survey of the various
programming styles that are supported by C++, focusing on the principles of object-oriented design and
programming.
Chapter 6, "Exception Handling," first describes traditional error handling methods and their
disadvantages, and then presents standard exception handling. A brief historical account of the design of
exception handling is provided and, finally, exception handling-related performance issues are discussed.
Chapter 7, "Runtime Type Information," discusses the three components of runtime type information
(RTTI), namely typeid, dynamic_cast and class type_info. In addition, it explains when the
use of RTTI is necessary. Finally, it discusses the performance overhead associated with runtime type
information.
Chapter 8, "Namespaces," elucidates the rationale behind the addition of namespaces to the language
and the problems that namespaces solve. Then it demonstrates how namespaces are used in practice, and
how they interact with other language features.
