On 5/31/2013 4:42 AM, Manu wrote:
People already have to type 'override' in every derived class, and
they're happy to do that. Requiring to type 'virtual' in the base is
hardly an inconvenience by contrast. Actually, it's quite orthogonal.
D tends to prefer being explicit. Why bend the rules in this case,
especially considering the counterpart (override) is expected to be
explicit? Surely both being explicit is what people would expect?
Maybe the solution is to make everyone equally unhappy:
all (non constructor) class methods must be either final, override, or
virtual, if you leave one of these off, you get an error :)