Virtual Classes?

Basile B. via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Aug 17 19:49:08 PDT 2016


On Thursday, 18 August 2016 at 00:49:49 UTC, Engine Machine wrote:
> https://en.wikipedia.org/wiki/Virtual_class
>
> Can D do stuff like this naturally?

Not naturally. The ancestor must be specified for the inner 
"virtual class":

°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
class Foo
{
     class Internal
     {
         void stuff() {}
     }
}

class Bar: Foo
{
     class Internal: Foo.Internal
     {
         override void stuff() {}
     }
}
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

However the ancestor inner class is well inherited (in the scope 
of a derived class Internal resolves to the parent definition or 
to the internal override when applicable).

Note that I find the wikipedia example very bad. "Parts" doesn't 
define anything to override.


More information about the Digitalmars-d-learn mailing list