Klassen und Globale/Gemeinsame Vars, wie geht das??



  • Hallo!

    ich hab folgendes Problem:

    ich habe 2 Klassen, die auf eine Klasse gemeinsam zugreifen sollen.
    also in etwa so:

    class ClassGemeinsam {
    }
    
    class Class1 {
         //tue was mit ClassGemeinsam
    }
    class Class2 {
         //tue was mit ClassGemeinsam
    }
    

    wobei ich für beide Klassen Class1 und Class2 die selbe Instanz von ClassGemeinsam benutzen möchte(muss).
    wie realisiere ich das?
    in Java hätte ich Class1 und Class2 einfach von einer Klasse abgeleitet in der ich die Klasse ClassGemeinsam mit static dekariert hätte:

    class ClassGemeinsam {
    }
    
    class Base {
        static ClassGemeinsam;
    }
    class Class1 extends ClassGemeinsam {
         //tue was mit ClassGemeinsam
    }
    class Class2 extends ClassGemeinsam {
         //tue was mit ClassGemeinsam
    }
    

    das hätte funktioniert. wie geht sowas in c++ ??
    thx 🙂



  • Vergiss es - hier bekommst Du nur dumme Sprüche

    Ich sprech da auc monatelanger Erfahrung



  • Du könntest beiden Klassen ne Referenz oder nen Pointer geben. Dann musst du allerdings sehr mim Speichermanagement aufpassen.

    [EDIT] Und lass dir nix von heinz einreden.



  • heinz.hemer schrieb:

    Vergiss es - hier bekommst Du nur dumme Sprüche

    Ich sprech da auc monatelanger Erfahrung

    🙄 also ich hab hier nur gute erfahrungen gemacht und immer kompetente und freundlich hilfe erhalten. :p

    ...

    geht das nicht irgendwie auch anders?
    kann ich ClassGemeinsam nicht irgendwie global oder so deklarieren oder mit namespace oder so? also möglichst einfach??



  • sn0b schrieb:

    heinz.hemer schrieb:

    Vergiss es - hier bekommst Du nur dumme Sprüche

    Ich sprech da auc monatelanger Erfahrung

    🙄 also ich hab hier nur gute erfahrungen gemacht und immer kompetente und freundlich hilfe erhalten. :p

    ...

    geht das nicht irgendwie auch anders?
    kann ich ClassGemeinsam nicht irgendwie global oder so deklarieren oder mit namespace oder so? also möglichst einfach??

    Bist ja auch erst 3 Wochen hier

    Wrst schon merken was für Spinner hier rumlaufen



  • @heinz.hemer na dann gib mir doch ne antwort auf mein problem.
    so wie du auf mein posting antwortest möchte ich sagen das das doch genau die art antwort ist die dir auch nicht passen würde oder?
    sie ist einfach negativ und hilft mir nicht weiter...



  • Am sinnvollsten wohl über Referenzen. Das sieht dann so aus:

    class gemeinsam { };
    
    class klasse1 {
    public:
      klasse1(gemeinsam &g) : m_g(g) { }
    
    private:
      gemeinsam &m_g;
    };
    
    class klasse2 {
    public:
      klasse2(gemeinsam &g) : m_g(g) { }
    
    private:
      gemeinsam &m_g;
    };
    
    // ...
    
    gemeinsam foo;
    klasse1 k1(foo);
    klasse2 k2(foo);
    

    @heinz.henner: Wie man in in den Wald ruft, so schallt es heraus.



  • okay. danke. ich probiers grad mal aus.


Anmelden zum Antworten