The author says it best, "I hope to move you, a little at a time,from understanding C to the point where C++ becomes your mindset". This remarkable book is designed to streamline the process of learning C++ in a way that discusses programming problems, why they exist, and the approach C++ has taken to solve such problems. "You can't just look at C++ as a collection of features; some of the features make no sense in isolation. You can only use the sum of the parts if you are thinking about design, not simply coding. To understand C++, you must understand the problems with C and with programming in general. This book discusses programming problems, why they are problems, and the approach C++ has taken to solve such problems. Thus, the set of features that I explain in each chapter will be based on the way that I see a particular type of problem being solved in C++." Tailor made to treat difficult concepts in a simple and practical way, the book focuses on building a customizable model for the reader which helps in deducing the solution of any puzzle that one might encounter.
The book presents the material one simple step at a time, so the reader can easily digest each concept before moving on. It uses examples that are as simple and as short as possible. This book does not to use any particular vendor's version of C++ because, for learning the language, the details of a particular implementation are not as important as the language itself. All code in the book was run against the Visual Studio (Microsoft) C++ compiler and Apple's Xcode C++ compiler to ensure accuracy. What you'll learn * To look at C++ as a way to express and tackle more and more complex concepts * Understand that C++ is not just a collection of features in isolation * To think about design, not simply coding * To understand the problems with C and with programming, in general and how they are addressed in C++ * Build up a solid foundation so that you can understand the issues well enough to move on Who this book is for C programmers in the process of adopting C++. Readers should at minimum have a reading level comfort with C.
Table of Contents * Introduction to Objects * Making and Using Objects * The C in C++ * Data Abstraction * Hiding the Implementation * Initialization and Cleanup * Function Overloading and Default Arguments * Constants * Inline Functions * Name Control * References and the Copy Constructor * Operator Overloading * Dynamic Object Creation * Inheritance and Composition * Polymorphism and Virtual Functions * Introduction to Templates * Exception Handling * Strings in Depth * iostreams * Runtime Type Identification (RTTI) * Multiple Inheritance (MI)