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 refAbgeleitetesObjekt in ptrBasisObjekt hinein, ohne zu wissen, welches Objekt refAbgeleitetesObjekt tatsä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_ptr an. 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


Anmelden zum Antworten