One suggestion I have is to learn C first (C for Dummies) because it is a simpler subset of C++, and give you two perspectives on how to program: functional and object-oriented. Experience with lower level languages is always handy, if not always used.
Sorry nullterm, I don't mean to pick on you, but I thought I'd just clarify something.... but first... ( )
... I agree with the others that learning C is not necessarily the best path to learning C++... More importantly, it seems like Bjarne himself is of a similar mind (taken from http://www.research.att.com/\~bs/bs_faq.html#prerequisite):
Knowing C is a prerequisite for learning C++, right? Wrong. The common subset of C and C++ is easier to learn than C. There will be less type errors to catch manually (the C++ type system is stricter and more expressive), fewer tricks to learn (C++ allows you to express more things without circumlocution), and better libraries available. The best initial subset of C++ to learn is not "all of C".
While it doesn't completely jive with what I'm saying, it does imply that if you're wanting to learn C++, you might have a hard time weeding out the parts of C you're learning that are relevant to C++.
As to the one correction I wanted to make; C is not truly a functional language. It's a procedural/imperative language. Functional languages are languages such as ERlang, Lisp, etc.
It's easily confused (I've done it), as we think of writing functions as being 'functional' and we confuse the language type with it.
For a better explanation than I could ever give, check up on the Wikipedia articles: