Package and virtual functions
BLM768
blm768 at gmail.com
Wed Jun 13 16:07:17 PDT 2012
On Wednesday, 13 June 2012 at 22:48:34 UTC, Jonathan M Davis
wrote:
> On Thursday, June 14, 2012 00:32:45 BLM768 wrote:
>> For some reason, whenever I declare a method with package
>> visibility, it becomes non-virtual. Is this normal behavior, or
>> is there a bug in DMD 2.059?
>
> Only public and protected functions can be virtual. private and
> package
> functions are never virtual. This is by design.
>
> - Jonathan M Davis
That explains it. I kind of wish I'd known that a few hours ago :)
It would be nice if DMD would issue a warning when redefining a
non-virtual function in a subclass. I might have to start using
"override" more often despite force of habit and dislike of its
verboseness. Perhaps "override" should be implied by default
since it's by far the most common case. In cases where the
programmer really wants to redefine the function non-virtually,
there could be a keyword that would handle that. It could reduce
extra typing and save beginners hours of stress :)
More information about the Digitalmars-d-learn
mailing list