I mentioned before that I think there needs to be an operator for expressly stating when you mean to replace a pre-existing virtual function in a descendant class. I noticed that C++ is preparing for the C++0x (they are aiming for C++09) standard which includes some very nice improvements (formalized hash tables, regular expressions, library recognition of the Container concept to simplify many STL operations).
Realizing that a working group is in-progress I decided I might as well throw my idea into the mix, and wrote a quick email to C++’s daddy, Bjourne Stroustrop.
I was rather surprised by how quickly he replied and then embarrased at my mistake :)
This has of course been discussed for decades, see for example D&E. Your suggested variant is very nice, but it won’t satisfy those who insists that the main problem is accidentally overriding using no keyword. Also, of course, since you are not overloading, the keyword would have to be something like “override”.
I have some more thoughts on the idea, but I’ll go away and think it through further before maybe trying to present my full idea to someone who has already tried to get a similar idea through – maybe adding a name to the proposal will give it a little extra muscle.