Come on now, every tutorial I've seen on Operator Overloading has at least one disclaimer about not using it when it isn't logical. And we always save it for later when they're more experienced.
And now I'm being called a Java Desginer, shit's low man.
I agree with helios. C++ isn't meant as a beginner language and yet, it's used as one all the time. This causes certain things to happen that simply shouldn't.
I don't think the language itself is 'bad' for a first language. The problem is usually the focus of the teaching. Is it teaching programming with the language or teaching the language to a programmer or some point in-between? One thing that I notice is that some of the people learning don’t have a decent foundation to work from. They don’t seem to have any concept of how the computer works; no mental model of memory layout and such. This can include those coming from ‘another language’ that dose lots of things for them so they never know what is going on under the hood.
But I guess whether you think/find C++ as a good first language or not depend also depends on whether you are a top-down or a bottom-up kind of a guy. To me, things like Java and .net are the flat-pack furniture end of the programming spectrum whereas C++ is the ‘here are some lumps of wood and a sack of tools’ end.