The copy-constructor should always be written for non-abstract operators as implementation is not handled in the abstract Operator class.
Implementation being unique to each operator, it is never cloned either. It is up to the non-abstract Operator copy-constructor to create a new implementation matching the copied Operator implementation.