Implementing .dup / clone for class hierarchies
Steven Schveighoffer
schveiguy at yahoo.com
Mon Dec 10 07:07:58 PST 2007
If you have dup return an Object, then you can use the classinfo to allocate
a new object of the most derived type (I think), and then just override the
copy method. The only issue is casting once you get the result, I like how
arrays don't need to be casted on dup. But this could be overcome with a
wrapper dup that calls the base method and just casts the return. Ugly, but
doable.
One issue with your implementation, if I have a DerivedA reference to a
DerivedB class, and I call dup, I'm going to get a DerivedA class only,
wouldn't I want a complete copy (i.e. a DerivedB instance)?
-Steve
More information about the Digitalmars-d-learn
mailing list