inheritance problem
Aarti_pl
aarti at interia.pl
Fri Apr 27 00:38:11 PDT 2007
Derek Parnell napisał(a):
> On Thu, 26 Apr 2007 20:21:04 +0200, bayo wrote:
>
>> Jari-Matti Mäkelä a écrit :
>>> bayo kirjoitti:
>>>> Hello, i currently use DMD 1.013 for Windows and i cant compile this code
>>>>
<snip>
>>>
>> Realy hard to me to understand this limitation if we can "patch" it with
>>
>> an alias, but thanks a lot for your fast help, it run well :)
>
> Well "limitation" may be a bit harsh. Inheritance is available but it is
> not as automatic as it is in some other languages.
>
> The need for the alias is because D's rules for finding matching functions
> is simple (some say simplistic). If it finds a matching name in the current
> context it doesn't try to look any further (e.g in the parent class). The
> 'alias' is the syntax needed to explicitly bring the parent's function's
> name into the current context.
>
> In your case above, because C2 contains the name 'add' your 'c.add(1,2)'
> stops looking further up the inheritance tree for a matching parameter
> signature. But by adding 'alias C1.add add', it includes all the 'add'
> functions in C1 into the namespace of C2.
>
> This is how Walter wants D to work so if you have suggested improvements,
> you have to convince him. (Good luck <G>)
>
It seems that this behavior is similar to way mixins work. I reported it
as enhancement as current way has serious limitations.
http://d.puremagic.com/issues/show_bug.cgi?id=1182
Regards
Marcin Kuszczak
(aarti_pl)
More information about the Digitalmars-d-bugs
mailing list