Why can't structs be derived from?

Jens jne at somewhere.org
Tue Mar 15 12:28:09 PDT 2011


Steven Schveighoffer wrote:
> On Tue, 15 Mar 2011 14:54:13 -0400, Jens <jne at somewhere.org> wrote:
>
>> I didn't ask how to do composition in D. I asked why composition
>> cannot be done via derivation, i.e., the reasoning behind the
>> language design choice. A design faux paus IMO.
>
> Because composition by inheritance can be *completely* implemented
> using alias this -- a feature that also provides other niceties.  Why
> provide another mechanism to do the exact same thing, just because
> you are used to it?

1. I'm not convinced the other functionality is necessary.
2. I eschew ugly syntax.

>
> Note that "inheritance" is actually done exactly this way in C++, by
> putting the derived type at the front of the "derived" type, and
> aliasing all the methods/fields into the derived namespace.
>
> Show me what composition by derivation provides that alias this does
> not.

Nice syntax. 




More information about the Digitalmars-d mailing list