Kopie einer abgeleiteten Klasse erstellen
-
Hallo,
ist es in C++ möglich, Kopien einer virtuellen Klasse zu erstellen, ohne zu wissen, welchen Objekttyp das zu kopierende Objekt hat?
Ich gebe am besten mal einen Code:
const Basisklasse& Funktion() { // Gibt Referenz auf irgendeine Ableitung von BasisKlasse zurück } BasisKlasse* ptrBasisObjekt = NULL; const BasisKlasse& refAbgeleitetesObjekt = Funktion();Wie bekomme ich nun eine Kopie von
refAbgeleitetesObjektinptrBasisObjekthinein, ohne zu wissen, welches ObjektrefAbgeleitetesObjekttatsächlich repräsentiert?
Gibt es so etwas wie virtuelle Kopierkonstruktoren?
-
Eine Möglichkeit wäre eine virtuelle
clone()-Funktion, die je nach Klasse ein anderes Objekt erzeugt.Schau dir vielleicht auch mal den
clone_ptran. Ich hab damit selber nicht viel Erfahrung, aber das sieht auf den ersten Blick noch interessant aus: http://www.codeguru.com/cpp/cpp/algorithms/general/article.php/c10407