A beginner’s Guide to Object-Oriented Programming
Featuring practical C++ and Turbo Pascal examples that explore the interface between real-world problem and OOP techniques.
It is an old book from a few years ago (1990), but very significant and important to understand the philosophy and technology of object-oriented programming.