zimv20 said:are we talking about class implementation or code using that class?
i think we're agreeing on just about everything. i'll suggest that we're spending too much time blaming the tool and not the developers. no language is going to be idiot-proof.
to start, i'd overload operator<< for unit test purposes. it would do nothing more than dump the values of the object vars in human readable format. i wouldn't expect anyone else to use it, though.
depending on the project, i'd consider operator= and operator== (and operator!= to complement ==). it may be useful to compare the terms of two mortgages to determine if they're the same offer. operator= would be handy for copying mortgage terms for a new offer.
nothing else jumps to mind.
Ok I can see what your saying and in these cases operator overloading is a handy way of applying polymorphism to objects you've created but only because of the syntax of the language that you don't have any power over.
I guess the major problem is when you do something unusual like overload = to be used in the same was as == or anything you wouldn't expect right off and ues programmers do stuff like this. Especially those who like other languages such as BASIC *shudders*.
I believe programmers should write good, clean, concise code or leave me alone but I do feel that the language used is a big factor in this because they're more than just tools. There mediums for expressing thought and the more clearly and precisely you can do that in a language the more challenging projects you'll be able to take head on easily.
Much as I like to blame the developers and the "tools" separately I think it's probably a mixture of the two. I've found that I can write code as a newbie to any language I've used (and I've used more than I can name) that would be on par with a medium level developer or in some cases even higher.
So I think it has a lot to do with the mindset you have at your disposal the more you ideas you're exposed to the larger the mindset you can use to solve a problem.
You should try programming in Lisp and if you like it recommend it for your next big project. I think you'll find the level of abstraction that is accessible to the developer far outstrips any other language and even if it doesn't its worth learning because it'll twist your brain inside out lol.
Once you've been exposed to this you should be able to understand what I mean when I say it's a poor excuse for an abstraction method.
It did mine, take care man.
Mark.