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
You could make the default base constructor protected
, then have only non-default constructors for the base and its child.
edit
You could give the base a protected
constructor with a different signature (such as a protected enum type), and put your initialization code in there, while the default constructor, also protected
, does not particular initialization.