Call-by-value class-object parameters can lead to
excessive-reclamation bugs.
You should avoid call-by-value class-object parameters.
If you want to ensure that you have no call-by-value
class-object parameters then insert the following copy-constructor
function prototype into the private portion of the topmost class in
each class hierarchy: