C++ isn't faster or better then Java 5 or 6 in many cases:
-> If you need to use virtual methods, the base of any OO programming.
-> C++ way of allocating memory is slower then the one used by the Java VM.
-> Java is able of doing runtime optimizations, and all the ones that a C++ compiler can do.
-> Java has less errors by loc in average.
-> Java is easer to port on multiple platforms. No recompilation is needed.

Now comparing to Python, Perl, Ruby, ...
-> you get less code, don't get surprised if you do the some code 10x less code. So fast Development.
-> you have many more library's and all the ones of C++.
-> perfect languages to the 80% of the code that you are running 20% of the time.
-> all this languages can call C code in a ease way.

Now comparing to ML, Haskell, Prolog, ...
-> They have different concepts Functional Programming or Logic Programming. They have there areas where any of the previous are suitable. For example the VC++ uses Prolog.

And telling the truth,
If I need running fast, I will do it in C.
If I need realtime, I will do it in ADA.
If I need beauty I'll do it in Java.
If I need fast development, I will do it in Perl.

C++ is good for games since for long time it was the best, and many libraries are done on it, just that.