Making inheritance less tedious
janderson
askme at me.com
Thu Mar 1 23:26:21 PST 2007
janderson wrote:
> Kevin Bealer wrote:
>> I've often thought that in C++ I could achieve neat results by copying
>> the vector,
>> string, and map classes and adding my own functionality, but there is the
>> annoyance of duplicating the half dozen or so string constructors.
>> The simplest
>> c++ syntax I have found is this (not tested):
>>
>> class MyString : string {
>> public:
>> template<A> MyString(A x) : string(x) {}
>> template<A,B> MyString(A x, B y) : string(x,y) {}
>> template<A,B,C> MyString(A x, B y, C z) : string(x,y,z) {}
>> };
> [snip]
>
> This is where I think well designed mixins really start showing their
> power. The problem in C++ is that the base classes are not written in
> the mixin design pattern, probably because its yet another level of C++
> complexity to add. In D mixins are easy, so theres is really no excuse.
>
> Having said that I don't think they solve this problem entirely.
>
> =Joel
I should clarify, I'm talking about the template mixins, not the ones
that take a string.
-Joel
More information about the Digitalmars-d
mailing list