If you want to ride a bicycle, you'll first have to learn to walk.
I think, first of all, don't learn a language, but learn to analyze things as objects.
Nowadays, everything is a object in the most new high level languages (.NET, JAVA2, ...).
But also consider that flat programming is speedy, and OO not.
So for speedy programs (graphics, embedded, real-time, ...) program in C, Assembler or even DOS.
So, start comprehending programming techniques & algorithms, and then learn a basic language (JAVA2 is ok but VERY slow) prior to become an expert in C++.