The authors begin by explaining why C++ is worth learning and then move on to the most important elements of C++. This book emphasizes understanding and practical use of the language. It explores the basics, covers inheritance and object-oriented programming, discusses templates and the powerful kind of abstraction they provide, and shows how to design and use libraries.
Unlike most software engineering books, this one is thoughtful and will make you think. Not just about choices in software architecture, but about the dynamics of the human organizations that commission programmers.