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