*** inherited constructors
This is a pet complaint of mine – I’ve never understood why you can’t inherit constructors. People put forth all sorts of arguments against it, but to my mind, they can all be removed by one simple rule: any derived class inherits all constructors from it’s parent, if and only if it doesn’t construct any of it’s own!
That way, it makes it nice and easy to just “add a function” to a class…
The case where you want to add a function to a class is a fairly rare one. The more common one is where you do something beyond that. In those cases, if we allowed constructor inheritance, then there’s a reasonable chance that somebody will forget to do some initialization in a base-class constructor, and then bad things will happen. This is especially bad in the versioning case – if a new version of the base class shows up with a new constructor, you would automatically get a new constructor in your class. Bad.