Why is the constructor of B called?

Nicholas Wilson via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Sep 23 18:01:08 PDT 2015


On Wednesday, 23 September 2015 at 21:25:15 UTC, tcak wrote:
> On Wednesday, 23 September 2015 at 21:14:17 UTC, Adam D. Ruppe 
> wrote:
>> On Wednesday, 23 September 2015 at 21:08:37 UTC, tcak wrote:
>>> I wouldn't expect B's constructor to be called at all unless 
>>> "super" is used there.
>>
>> "If no call to constructors via this or super appear in a 
>> constructor, and the base class has a constructor, a call to 
>> super() is inserted at the beginning of the constructor. "
>>
>>
>> from http://dlang.org/class.html#constructors
>>
>> the idea is to make sure the base class construction work is 
>> done too.
>
> Is there any way to prevent this behaviour?
>
> Quickly checked whether Java acts in the same way. Answer is 
> yes.

You might be able to swap out the vtbl entry  for a stub call it 
and trick the compiler and swap it back, but...


More information about the Digitalmars-d-learn mailing list