The best book by far for learning OO is this one:
Object Design: Roles, Responsibilities and Collaborations (Addison-Wesley Object Technologiey Series) (Paperback)
by Rebecca Wirfs-Brock (Author), Alan McKean (Author) ISBN-10: 0201379430
http://www.amazon.co.uk/Object-Design-Responsibilities-Collaborations-Addison-Wesley/dp/0201379430/ref=sr%5F1%5F1?ie=UTF8&s=books&qid=1256898821&sr=8-1
A lot of the OOAD books out there are quite old and don't take account of agile thinking.
By contrast, Rebecca Wirfs-Brock's ideas on OOAD have had a lot of influence on how extreme programming design developed. This is about design thinking, not how to draw pretty diagrams.
Read a good patterns book. If you're happy with C++ (ha!) you could read the bestseller -
Design Patterns: Elements of Reusable Object-Oriented Software (Hardcover)
~ Erich Gamma (Author), Richard Helm (Author), Ralph Johnson (Author), John M. Vlissides (Author), ISBN-10: 0201633612
http://www.amazon.co.uk/Design-patterns-elements-reusable-object-oriented/dp/0201633612/ref=sr%5F1%5F1?ie=UTF8&s=books&qid=1256899180&sr=8-1
... but if you're a Java or C# guy it's probably more useful to read one of Steve Metsker's books - either Design Patterns in Java or Desgin Patterns in C#:
http://www.amazon.co.uk/Design-Patterns-Java-Software/dp/0321333020/ref=sr%5F1%5F1?ie=UTF8&s=books&qid=1256899254&sr=1-1
or
http://www.amazon.co.uk/Design-Patterns-C-Workbook-Software/dp/0321126971/ref=sr%5F1%5F2?ie=UTF8&s=books&qid=1256899277&sr=1-2
I've used Steve Metsker's Design Patterns in Java to help introduce some Microsoft technology guys to working in Java and it was very practical and readable.