Teachers' Guide to Practical C++ Programming
oualline.com
oualline.com
I was unimpressed by that book; all the bugs were pretty shallow, and there were some mistakes that weren't supposed to be there (which is especially bad in a book of this sort).
Of course, most people that 'know' C++ learned it in college, which tends to be a lousy place to learn anything technical. They think of C++ as C with objects. In fact it's a language with all the power and nearly all the expressiveness of modern scripting languages, but tends to run everything a hundred times faster.
C++ is a multi-paradigm language. Its "objects," which tend to get more coverage than anything else during college courses, are actually the most uninteresting and least useful part of the language. Generic programming, on the other hand, is some pretty amazing stuff.