The classic, best-selling Data Abstraction and Problem Solving with C++: Walls and Mirrors book provides a firm foundation in data abstraction that emphasizes the distinction between specifications and implementation as the basis for an object-oriented approach. This new edition offers the latest C++ features and an introduction to using Doxygen--a documentation generator for C++, enhanced coverage of Software Engineering concepts and additional UML diagrams. Provides a strong introduction to, and continuous use of, data abstraction emphasizing the distinction between specification and implementation Features extensive coverage of object-oriented programming techniques Focuses on core data structures instead of non-essential C++ language syntax Illustrates the role of classes and ADTs in the problem-solving process Includes major applications of ADTs, such as searching a flight map, event-driven simulation, and the eight queens problem Covers the use of the Standard Template Library (STL) with examples included in most chapters Provides the best coverage of recursion available Includes an appendix, "Basic C++ Syntax", for students who are making the transition from another language to C++