Like Dude-X suggested, I highly recommend the Deitel books. That's what I'm actually using to learn C++ right now. It's AWESOME in everyway!!! It teaches the language clearly & it's color coded. It actually teaches you how to program correctly/professionally from the very start. One thing I love about the book is the fact that they give you programming tips all along. There are 601 programming tips in the whole book, and they're classified into 6 types, as follows:
1- 90 Good Programming Paractices:
These are tips that'll help you write programs that are more readable, self-documenting & easier to maintain.
2- 198 Common Programming Errors:
Tips to help you avoid making some of the most common mistakes that most programers do.
3- 88 Performance Tips:
Tips on how to wright your programs for better performance.
4- 36 Portability Tips:
Tips that would help you wright portable codes.
5- 149 Software Engineering Observations:
Tips that would point out architectural & design issues that has an affect on construction of sofware systems.
6- 38 Testing and Debugging Tips:
Tips on how to avoid having bugs as you write your programs that hopefully would make the test & debugging process simplier.
Dietel does this with all their books. I wouldn't recommend anything else. I'll, hopefully, be buying the 6th edition of Java How to Program next month. Good luck.