On Thursday, 6 June 2013 at 05:19:32 UTC, H. S. Teoh wrote:
1. 'virtual' means a method is an "introducing" one.
2. 'override' means override with a non-final function.
3. 'final override' means a method overrides a base virtual
function with a final function.
4. 'final' by itself both mean final and non-overriding.
As for no specification, I thought the whole point was to have
it
default to final? So 'final' should be optional in this case.
I see your point, but when I override a virtual it will usually
always be with another virtual unless for some reason I wanted to
explicitly state final. That's how it's always been done in other
languages that I'm aware of, and switching to final by default on
overrides will likely be a source of frustration.
--rt