I started with C/C++ and moved to Java.
I'm not sure new grads really know anything--consider them clean-slate for training. You might even be better off with an uneducated hacker.
That said, it's fairly easy for a good engineer to shift back and forth between pointers, memory allocation and the like--but I think it's amazingly difficult to shift from garbage-collected OO back to non-OO.
When you are working with a system with GC, you get much better at thinking about your design at a high level. You can actually code in a way that is much more understandable. You start really having classes that focus on a single responsibility (most classes will be a few screens--most methods will be trivial).
I've never seen good OO C++ code, which is probably good because OO code isn't going to be all that performant and simply has too many small allocations/deallocations, short method calls and other little performance roadblocks to make a C++ programmer happy.
It's kind of like taking your race-car and putting AC, power steering and Power windows on it. Much more usable, but defeats the reason it was chosen in the first place.
By the way, I'd love to actually see some good OO c++ code if anyone has a reference...