Klassennamen als Parameter?



  • Hallo,

    ich habe ein Problem, was mich etwas verwirrt:

    Ich habe eine abstrakte Klasse Klasse1 und viele davon abgeleitete Klassen.
    Außerdem eine davon unabhängige Klasse3, welche eine Datenhaltung implementieren soll, die Objekte vom jeder beliebigen Klasse aufnehmen soll, die von Klasse1 abgeleitet ist.
    Solange Klasse1 nicht abstrakt ist, bekomme ich das wunderbar hin, sobald ich aber ein

    virtual void Klasse1::function() = 0;
    

    einbaue funktionier folgendes nicht mehr:

    public void Klasse3::insertObject(Klasse1 object)
    

    weil ja eine abstrakte Klasse nicht instanziert werden kann - logisch.
    Kann ich einen Parameter definieren, der einem beliebig von Klasse1 abgeleiten Klassennamen entspricht? 😕

    Danke schonmal im vorraus



  • du sollest fast immer const Klass1&object uebergeben, sonst wird ja immer eine unnuetze kopie gemacht!
    und normalerweise haben zu serialisierende objekte selbst eine virtuelle serialize() methode, dann brauchst du keinen typeswitch.



  • Ja klar, danke!
    Hätt ich auch von selbst drauf kommen können, dass es geschickter ist einen Pointer zu übergeben. 🙄

    Kannst Du mir grad noch helfen, wie ich

    multiset<Klasse1, less<Klasse1> > liste
    

    modifizieren muss, damit es die Zeiger aufnehmen kann?

    Dankeschön 🙂

    [ Dieser Beitrag wurde am 18.06.2003 um 02:32 Uhr von MrBigglesworth editiert. ]

    [ Dieser Beitrag wurde am 18.06.2003 um 22:51 Uhr von MrBigglesworth editiert. ]


Anmelden zum Antworten