Good book... but for who?
This book presents OOP in C++ in a somewhat confusing way. Starting with the foundations of procedural programming, it introduces the C++ basics, like data type, streams, structures and loops. Enter Chapter 6, where objects and classes are finally explained. But as soon as this chapter's over, you get to learn about arrays and strings, then return to OOP with operator overloading and inheritance, and back again for pointers... It always goes from functional to object-oriented features and back, as if to rush the reader into programming OO from the beginning, as soon as possible. While I don't think this is a bad idea to teach OOP soon, this approach feels weird.
The only reason this book in called OOP in C++ is because all examples from Chapter 6 to the end are presented object-oriented. The flow of the book itself makes it hard for beginners to learn C++ with this book. But it is a good way to learn the basics of OOP.
If you know the C/C++ and/or OOP basics and wish to brush up your OOP in C++, this is a fine book. Chapters, while presented in a questionable order, are well developed and easily readable on their own. Intermediate programmers can easily take whatever they want from this book without having to read it all.
This book does include a chapter on OO software development, but it's incomplete. There are complete books (as big as this one) just to explain OO software development. So experts looking to learn this won't be well served with this book.
All in all, what this book does, it does it well. That is:
- teaching C++ to non-beginning programmers;
- teaching OOP to C/C++ programmers.