clone() only partially doable; how to react?
Posted
by
hllnll
on Programmers
See other posts from Programmers
or by hllnll
Published on 2014-08-21T17:30:07Z
Indexed on
2014/08/21
22:26 UTC
Read the original article
Hit count: 295
idioms
Suppose we have a class-hierarchy whose base class B requires a clone() method to be defined in its derivations. Whilst this works perfectly for most of them there is this one derivation X that holds an optional reference to a resource/object that can only be referenced from one instance of X. Whilst the rest of X can be cloned without problems this reference would have to be set to null/nil/nullptr.
What is the correct way to handle this situation?
X::clone()could throw anUncloneableException. Though this would be correct, it is not satisfying.- Set the reference to null/nil/nullptr and leave no notice of it. The user of
Xhas to know aboutXs "particularities". - Require derivations of
Bto defineB::nearestClone(): the user ofBhas to be aware that the return value might not be a 1:1 clone. - Something else?
© Programmers or respective owner