July 02, 2018 Delegating constructor and call to super | ||||
---|---|---|---|---|
| ||||
class A {
this(){...}
this(int a) {...}
this int a, int b){...}
}
class B {
this(){... init some stuff for B ...}
this(int a){super(a); this();}
}
Error: multiple constructor calls
I think it's because of "If a constructor's code contains a delegate constructor call, all possible execution paths through the constructor must make exactly one delegate constructor call"
But, how am I supposed to call the super(int) consturctor and put my common initialization code into a delegating constructor?
--
Robert M. Münch
http://www.saphirion.com
smarter | better | faster
|
July 02, 2018 Re: Delegating constructor and call to super | ||||
---|---|---|---|---|
| ||||
Posted in reply to Robert M. Münch | On Monday, 2 July 2018 at 09:42:36 UTC, Robert M. Münch wrote:
>
> I think it's because of "If a constructor's code contains a delegate constructor call, all possible execution paths through the constructor must make exactly one delegate constructor call"
>
> But, how am I supposed to call the super(int) consturctor and put my common initialization code into a delegating constructor?
class B {
this(){ initialize(); }
this(int a){super(a); initialize(); }
private void initialize() { ... init some stuff for B ... }
}
|
Copyright © 1999-2021 by the D Language Foundation