Union !!



  • ALso ich weiß das ich eine Klasse erstellen kann in welcher die Members sich den Speicher teilen mit hilfe des Schlüsseltworts union. Also ca. so :

    union MeineKlasse
    {
       float x,y,z;
       float u,v,w;
    }
    

    so nun teilen sich alle Members der Union den Speicher... Ich will aber das sich immer nur 2 Bestimmte Members den Speicher teilen wie funktioniert das ???



  • Wenn ich Dich richtig verstehe, dann willst Du so etwas hier machen:

    union MeineKlasse {
        struct {
            float a, b, c;
        } TeilA;
        struct {
            float x, y, z;
        } TeilB;
    };
    


  • Danke erstmal.... So wie in deinem Code müstte jetzt doch x,y,z sich einen Speicher bereich teilen und u,v,w auch einen ? Wenn ja...
    Denke ich das löst mein Prob 😉 Ich will aber eigentlich sowas machen was ja eigentlich kein großer unterschied ist.

    union MeineKlasse {
       struct {
          float x,u;
       } TeilA;
       struct {
          float y,v;
       } TeilB;
       struct {
          float z,w;
       } TeilC;
    };
    

    Ich hoffe das Stimmt so das sich nun x und u ein Speicherbereich teilen



  • MannyDasMammut schrieb:

    ... Ich will aber das sich immer nur 2 Bestimmte Members den Speicher teilen ...

    Ups - diesen Satz habe ich doch glatt überlesen... Deine zweite Fassung sollte also wie gewünscht funktionieren.

    Mir fällt da noch etwas ein. Mit dieser Version kannst Du bequem ein Array benutzen:

    struct MeineKlasse {
        union {
            float a, b, c;
        } Teil[2];
    };
    

    Die Elemente Teil[0].a, Teil[0].b unc Teil[0].c teilen sich den gleichen Speicher; ebenso die Elemente Teil[1].a, Teil[1].b und Teil[1].c.


Anmelden zum Antworten