Asserting that a base constructor is always called

Tim t.oliver at windowslive.com
Sun May 24 06:38:46 UTC 2020


On Sunday, 24 May 2020 at 00:51:17 UTC, Jonathan M Davis wrote:
> On Saturday, May 23, 2020 4:43:04 PM MDT Tim via 
> Digitalmars-d-learn wrote:
>> It is but I want to make sure for other cases in the future 
>> where I create a new class that inherits from GameObject. This 
>> was I can avoid future bugs by ensure that all classes in the 
>> future that inherit from GameObject, call it's constructor
>
> The base class constructor will _always_ be called. There's no 
> need to worry about it. Even if you hadn't declared one, the 
> compiler will provide a default constructor, because classes 
> have to have a constructor. And if you had declared a 
> constructor in your base class but no default constructor, then 
> you'd get a compile-time error if your derived class' 
> constructor didn't explicitly call it.
>
> - Jonathan M Davis

Oh right. I mean it makes sense but I got confused when super() 
is valid syntax. Why would you need to call the super constructor 
when it's called automatically?


More information about the Digitalmars-d-learn mailing list