Let me put it this way:
I took and passed with a 94%, the Sun Java Certification without ever having compiled a line of Java (that was nine years ago). I was able to do this, because I knew C++ very well.
On my first professional job, I was hired as a tester. On my second day, I was told I could program instead of test, if I learned enough PowerBuilder to be useful -- in two weeks. Because I knew C++ so well, PowerBuilder was easy.
C++ is hard, but if you learn it well -- read Stroustrup's The C++ Programming Language, do the exercises too, read his Design and Evolution of C++, read the C++ Faq and the Meyers books and Herb Sutter's books, read comp.lang.c++.moderated, read Coplien's Advanced C++ Programming Styles and Idioms no matter what OO language you want to code in -- if you learn it well, every other OO language is easy.
Learning C++ is excellent preparation for learning to code. (And you'll become a fair C programmer too, but read K&R to get to be a good C programmer.)
Oh. And C++ is really fun to program in, much less verbose than Java, and much more flexible. You're really in charge, not the IDE or the language. You can shoot off your own foot, but you'll be in charge of doing it. And read Alexandrescu's book once you know
templates, it'll amaze and dumbfound and delight you.
C++ is fun. Read the "Curiously Recurring Template Pattern": it looks like this
template< class T> struct base {};
struct derived: base< derived > {};
Yeah, you got that right: it's a class that derives from a base that's templated on the deriving class. Now that sounds just obscure and silly, but there are many good uses for it, and just the other day I was beating my head because you can't do this in Java (because Java uses type erase, not templates, for generics), but if I could have used it, I could have saved lots and lots of code repeated in lots of classes.
There's so much more in C++, and if you limit yourself to Java or .Net, you'll never discover it.