"Wrapperklassen" Problem



  • Ich habe ein kleines Problem bei dem ich nicht weiterkomme, da ich nicht so recht weiss wonach ich googlen sollte, oder geistig zu begrenzt um es zu verstehen.

    Also folgendes Problem:
    Ich habe viele Klassen, die sagen wir (um es einfach zu halten) 3 funktionen haben: a(), b() und c().

    Nun will ich das Ganze in einer Klasse zusammenfassen, die ausgehend von einem Parameter eine Instanz der richtigen Klasse erzeugt und die Funktionen aufruft.

    Nun weiss ich nicht, was der beste Weg ist etwas derartiges zu realisieren.

    Meine erste Idee war etwas in der Richtung, allerdings funktioniert das nicht.

    //.h
    class Oberklasse
    {
    public:
        explicit Oberklasse(int x = 0);
    
        bool a();
        bool b();
        void c();
    
    private:
        void *y
    };
    
    //.cpp
    #include "streamfetcher.h"
    
    Oberklasse::Oberklasse(int x)
    {
        if (x == 3)
        {
        y = new Unterklasse();
        }
    }
    
    bool Oberklasse::a()
    {
        y->a();
    }
    
    bool Oberklasse::b()
    {
        y->b();
    }
    
    void Oberklasse::c()
    {
        y->c();
    }
    

    Waere nett, wenn mir jemand einen kleinen Codeschnipsel zeigen koennte, oder mich in die richtige Richtung schubst.



  • Such mal nach dem Design Pattern Factory. Vielleicht hilft Dir das weiter.



  • Neuling4711 schrieb:

    ... allerdings funktioniert das nicht.

    Sehr präzise Angabe.

    Du Verwendest die Begriffe Ober- und Unterklasse, da ist aber nichts abgeleitet. Warum?

    void*? Dann müsstest du casten. Gibt es eine gemeinsame Basisklasse?



  • manni66 schrieb:

    Neuling4711 schrieb:

    ... allerdings funktioniert das nicht.

    Sehr präzise Angabe.

    Du Verwendest die Begriffe Ober- und Unterklasse, da ist aber nichts abgeleitet. Warum?

    void*? Dann müsstest du casten. Gibt es eine gemeinsame Basisklasse?

    Die Angabe war deswegen unpraezise, weil ich nur andeuten wollte, was ich so vor habe und nach einer Designloesung suche, nicht nach einem Fehler im Code.



  • Neuling4711 schrieb:

    manni66 schrieb:

    Neuling4711 schrieb:

    ... allerdings funktioniert das nicht.

    Sehr präzise Angabe.

    Du Verwendest die Begriffe Ober- und Unterklasse, da ist aber nichts abgeleitet. Warum?

    void*? Dann müsstest du casten. Gibt es eine gemeinsame Basisklasse?

    Die Angabe war deswegen unpraezise, weil ich nur andeuten wollte, was ich so vor habe und nach einer Designloesung suche, nicht nach einem Fehler im Code.

    Man kann dann also das Problem an dieser nicht funktionieren Idee nicht beschreiben? Andere sollen aber mit diesen Nichtinformationen eine Lösung liefern?

    Schon klar ...



  • iop schrieb:

    Such mal nach dem Design Pattern Factory. Vielleicht hilft Dir das weiter.

    Danke, sowas hab ich gesucht.

    manni66 schrieb:

    Man kann dann also das Problem an dieser nicht funktionieren Idee nicht beschreiben? Andere sollen aber mit diesen Nichtinformationen eine Lösung liefern?

    Schon klar ...

    Wie schon davor gesagt, liegt mein Problem darin, dass ich nicht weiss, wie man etwas derartiges am Besten umsetzt und eben nicht in einem Code der nicht funktioniert.
    Der Code war nur um genauer zu beschreiben was ich vorhabe zu erreichen.
    Vielleicht hatte ich das nicht klar genug ausgedrueckt.

    iop konnte zum Glueck meinen Gedanken folgen und mir einen Wink in die richtige Richtung geben.


Log in to reply