Even though I don't program with C++ much these days, I still love the book entitled "C++ Programming Language" by Bjarne Stroustrup - the creator of the C++ programming language. Its first edition was published in 1986, but the book still remains informative even for non-C++ programmers. Unlike many other programming books, this one doesn't focus only on the language itself, in contrast, there are many very useful chapters on various programming paradigms, including the object oriented one, for sure. Besides, it does really explain the p urpose of the object oriented method and its benefits. Moreover, there is information on software architecture, class design and on programming process as a whole.
The reason why I fetched it from my bookshelf was the constant questions in programming forums about benefits of OOP. The object oriented way of programming seems to be very natural for me, however I decided to prove my thoughts about OOP by consulting an authoritative source. The book by Bjarne Stroustrup who was one of the founders of object oriented programming is that authority source. While reading this book I recognized many contemporary patterns and principles, although Bjarne Stroustrup never calls them with the names they have today.
Nowadays there are a lot of books on design patterns, programming principles and etc that use Java or .NET as an example, however C++ is also an excellent example, simply because it was the language that inspired the Java and C# creators. So, this particular book is written by the real father of the modern programming principles, even if he is not considered to be fashionable today. Therefore, it can be recommended to any programmer, no matter which language they use.