Realizarea unei clone a unui obiect presupune crearea
unui obiect nou, cu existenta independenta de cel clonat, care ocupa in memorie
un spatiu distinct de cel clonat dar care are toate atributele si metodele
identice cu ale celui clonat.
Mecanismul urmator foloseste constructorul de copiere si o metoda declarata virtuala, care este
supracrisa in clasa derivata. Declararea virtuala este necesara pentru apelul
corect al metodelor: metoda Clone va fi cautata intai in clasa derivata,
indiferent de scenariu - fie ca variabila are tipul clasei de baza sau cel al
clasei derivate.
Stim ca o variabila initializata cu o instanta a clasei
derivate are si tipul clasei de baza (invers nu!)
Suprascrierea metodei implica prezervarea aceleiasi semnaturi (nume, argumente, tip de return) dar o implementare diferita in
clasa derivata.