I was surprised to find out that the parameter-less constructor of my base class is called any time I call any constructor in a derived class. I thought that is what
The only way is to explicitly tell it which other base ctor you want it to call; which of course means you must choose some base ctor to call.
You can't have it call no base ctor at all - conceptually, constructing a Customer
is done by first constructing a Person
, and then doing Customer
specific construction on top of it. For example, suppose Person
had private
fields - how would these be correctly constructed if construction of a Customer
was allowed to not first construct a Person
?