D mixins
Lutger
lutger.blijdestijn at gmail.com
Thu Jan 4 14:35:52 PST 2007
Chris Nicholson-Sauls wrote:
> janderson wrote:
>> Lutger wrote:
>>> janderson wrote:
>>>> I'm trying to explain to a friend on msn what mixins are. Can you
>>>> provide some good examples, that would be difficult otherwise?
>>>>
>>>> -Joel
>>>
>>> What about implementing multiple inheritance in a language that does
>>> not have multiple inheritance? (interface + mixin as default
>>> implementation)
>>
>> Thanks for your reply.
>>
>> Well coming from C++ this would not make much sense. Where would you
>> use them in C++? Where would you use them in D? Are there any good D
>> examples that show the power of mixins in a simple way that would be
>> more ugly another way?
>>
>> Cheers.
>> -Joel
Yes indeed, this is not a good example vis-a-vis C++.
Private inheritance in C++ is sometimes called mixin. So here,
inheritance is used (but more restrictive) to emulate mixin's.
I find the seperation between (single) inheritance, interface and raw
code injection better conceptually in D. In C++ it's all lumped together
in inheritance, which makes it harder to distinguish intent.
There surely are good examples, I haven't used mixins myself in such a
way that you are asking for.
Of course it is a unconvincing argument to make, but I would rather ask
the question if there are any good examples where MI a la C++ is cleaner
than interface and / or mixins because MI is so ugly it's on par with
preproccesor macros and template template arguments.
> I think the Signals/Slots implementation in Phobos is a good example.
>
> -- Chris Nicholson-Sauls
I think you can achieve this as easy with multiple inheritance in C++?
More information about the Digitalmars-d
mailing list