super constructors question

Jarrett Billingsley kb3ctd2 at yahoo.com
Sun Aug 13 12:58:24 PDT 2006


"Serg Kovrov" <kovrov at no.spam> wrote in message 
news:ebn850$3qa$1 at digitaldaemon.com...
> Hello everybody,
>
> Could someone explain why D do not lookup for appropriate super
> constructor? It is in specs:
>> If there is no constructor for a class, but there is a constructor  for 
>> the base class, a default constructor of the form:
>> this() { }

That really should read "this() { super(); }".

> But i do not understand intension. Is it so hard for compiler to find
> suitable constructor in base class(es)?

It's not really trivial.  Basically the rule would have to change so that if 
a class were defined without any ctors, it would have to create a ctor for 
each ctor that the base class has, and forward the parameters.  So your code 
would insert an implicit "this(char[] name) {super(name);}" in FooBar.  That 
seems like a little too much automation for very rarely any real benefit. 
Most of the time you're going to be making new constructors for the derived 
class anyway, so it's kind of a niche problem. 





More information about the Digitalmars-d-learn mailing list