<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Struct&#x2F;Union im Struct&#x2F;Union]]></title><description><![CDATA[<p>Hi,<br />
Ich habe einen struct/union in dem ein weiter structs/unionen vorhanden sind - wie deklariere ich nun eine Variable, sodass ich auf alle structs/unioen zugreifen kann?<br />
Bsp:</p>
<pre><code class="language-cpp">union MeineUnion
{
    int Zahl1;
    int Zahl2;
    struct MeinStruct
    {
         char Zeichen1;
         char Zeichen2;
    }; 
};

int main()
{
    MeineUnion Test;
    Test.Zahl1 = 1;
    Test.Zahl2 = 2;
    Test.MeinStruct.Zeichen1 = 'A';
    Test.MeinStruct.Zeichen2 = 'B';
}
</code></pre>
<p>Beim der ersten Zuweisung (also &quot;Test.Zahl1 = &quot;) und allen folgenden, streikt der Compiler mit der Meldung:</p>
<pre><code>error: invalid use of `struct MeineUnion::MeinStruct'
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/185696/struct-union-im-struct-union</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 06:16:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/185696.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 29 Jun 2007 22:27:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Struct&#x2F;Union im Struct&#x2F;Union on Fri, 29 Jun 2007 22:27:15 GMT]]></title><description><![CDATA[<p>Hi,<br />
Ich habe einen struct/union in dem ein weiter structs/unionen vorhanden sind - wie deklariere ich nun eine Variable, sodass ich auf alle structs/unioen zugreifen kann?<br />
Bsp:</p>
<pre><code class="language-cpp">union MeineUnion
{
    int Zahl1;
    int Zahl2;
    struct MeinStruct
    {
         char Zeichen1;
         char Zeichen2;
    }; 
};

int main()
{
    MeineUnion Test;
    Test.Zahl1 = 1;
    Test.Zahl2 = 2;
    Test.MeinStruct.Zeichen1 = 'A';
    Test.MeinStruct.Zeichen2 = 'B';
}
</code></pre>
<p>Beim der ersten Zuweisung (also &quot;Test.Zahl1 = &quot;) und allen folgenden, streikt der Compiler mit der Meldung:</p>
<pre><code>error: invalid use of `struct MeineUnion::MeinStruct'
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1315370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1315370</guid><dc:creator><![CDATA[Pille456]]></dc:creator><pubDate>Fri, 29 Jun 2007 22:27:15 GMT</pubDate></item><item><title><![CDATA[Reply to Struct&#x2F;Union im Struct&#x2F;Union on Fri, 29 Jun 2007 22:50:37 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">union MeineUnion {
    // ...
    struct {
        // ...
    } MeinStruct;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1315378</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1315378</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Fri, 29 Jun 2007 22:50:37 GMT</pubDate></item><item><title><![CDATA[Reply to Struct&#x2F;Union im Struct&#x2F;Union on Fri, 29 Jun 2007 23:01:33 GMT]]></title><description><![CDATA[<p>Ahh, danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /><br />
Gibts da noch ander Schreibweisen oder ist diese die gänige/einzige?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1315381</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1315381</guid><dc:creator><![CDATA[Pille456]]></dc:creator><pubDate>Fri, 29 Jun 2007 23:01:33 GMT</pubDate></item><item><title><![CDATA[Reply to Struct&#x2F;Union im Struct&#x2F;Union on Fri, 29 Jun 2007 23:07:52 GMT]]></title><description><![CDATA[<p>geht darum, dass das struct nen anständiger member des unions wird. die variante</p>
<pre><code class="language-cpp">struct {
} name;
</code></pre>
<p>definiert einen member vom &quot;anonymen typ&quot;, wie vorher definiert. die schreibweise entspricht einer deklaration wie &quot;int i;&quot;</p>
<p>kannst das struct auch ausserhalb des unions definieren und dann ne membervariable vom entsprechend typ ins union packen.</p>
<pre><code class="language-cpp">struct Typ {
};

union U {
 int i;
 Typ t;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1315383</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1315383</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Fri, 29 Jun 2007 23:07:52 GMT</pubDate></item><item><title><![CDATA[Reply to Struct&#x2F;Union im Struct&#x2F;Union on Fri, 29 Jun 2007 23:17:10 GMT]]></title><description><![CDATA[<p>Ok, danke...<br />
Die 2. Methode muss ich mal testen, ob ich die für meine Zwecke gebrauchen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1315384</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1315384</guid><dc:creator><![CDATA[Pille456]]></dc:creator><pubDate>Fri, 29 Jun 2007 23:17:10 GMT</pubDate></item><item><title><![CDATA[Reply to Struct&#x2F;Union im Struct&#x2F;Union on Sat, 30 Jun 2007 11:06:32 GMT]]></title><description><![CDATA[<p>Pille456 schrieb:</p>
<blockquote>
<p>...</p>
<pre><code class="language-cpp">union MeineUnion
{
    int Zahl1;
    int Zahl2;
    struct MeinStruct
    {
         char Zeichen1;
         char Zeichen2;
    }; 
};...
</code></pre>
</blockquote>
<p>&quot;Spezialfall&quot; von</p>
<pre><code class="language-cpp">struct MeinStruct1 // oder class
{
    int Zahl1;
    int Zahl2;
    struct MeinStruct2
    {
         char Zeichen1;
         char Zeichen2;
    }; 
};...
</code></pre>
<p>Da kommt der Unterschied zwischen einer &quot;inneren Klasse&quot; (in C++) zu einem &quot;inneren Objekt&quot; (wie in Java) zum Tragen. Hier (innere Klasse) hast Du einfach einen weiteren Typ definiert ... aber noch keine Objekt dieser Klasse angelegt.<br />
Selbst dann nicht, wenn Du ein MeinStruct1-Objekt in der Hand hast, hast Du noch kein MeinStruct2-Objekt bekommen.<br />
Im Extrem habe die gar nichts miteinander zu tun:</p>
<pre><code class="language-cpp">int main() {
   MeinStruct1 s1;
   MeinStruct1::MeinStruct2 s2; // -&gt; beide Objekte sind voneinander unabhängig
   s1.Zahl1 = 7;
   s2.Zeichen1 = 'a';
...
</code></pre>
<p>Ich denke, was Du meinst, ist:</p>
<pre><code class="language-cpp">struct MeinZahlenStruct
{
    int Zahl1;
    int Zahl2;
};

struct MeinZeichenStruct
{
   char Zeichen1;
   char Zeichen2;
}; 

union MeineUnion {
   MeinZeichenStruct zeichen;
   MeinZahlenStruct zahlen;
};
</code></pre>
<p>Aber kleiner Tipp: unions beißen einen fast immer irgendwann in den Hintern !<br />
Und es gibt fast immer bessere Lösungen dafür. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1315520</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1315520</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Sat, 30 Jun 2007 11:06:32 GMT</pubDate></item><item><title><![CDATA[Reply to Struct&#x2F;Union im Struct&#x2F;Union on Sat, 30 Jun 2007 16:01:14 GMT]]></title><description><![CDATA[<p>Die den dummen Nebeneffekt einer Union will ich ja &quot;misbrauchen&quot;, daher ist dies in meinem Fall die Beste Lösung. Und genau darum müssen die auch ineinadner verschachtelt sein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /></p>
<p>Hier hab ich ein gutes Beispiel dazu gefunde, was ich damit mache (im übrigen wirds da auch Erklärt :D, aber das wusste ich ja gerstern nicht^^)<br />
<a href="http://www.it-academy.cc/article/1345/Binaere+Darstellung+in+C+C++.html" rel="nofollow">http://www.it-academy.cc/article/1345/Binaere+Darstellung+in+C+C++.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1315725</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1315725</guid><dc:creator><![CDATA[Pille456]]></dc:creator><pubDate>Sat, 30 Jun 2007 16:01:14 GMT</pubDate></item><item><title><![CDATA[Reply to Struct&#x2F;Union im Struct&#x2F;Union on Sat, 30 Jun 2007 20:03:13 GMT]]></title><description><![CDATA[<p>Pille456 schrieb:</p>
<blockquote>
<p>Die den dummen Nebeneffekt einer Union will ich ja &quot;misbrauchen&quot;, daher ist dies in meinem Fall die Beste Lösung. Und genau darum müssen die auch ineinadner verschachtelt sein :-)...</p>
</blockquote>
<p>Wer &quot;.... muss geschachtelt sein ...&quot; ? Die Klassen oder die Objekte ?<br />
Zweiteres glaube ich - Ersteres nicht. :p <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Aber wenn Du Dein Problem schon gelöst hast, ist ja alles prima ! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1315864</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1315864</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Sat, 30 Jun 2007 20:03:13 GMT</pubDate></item></channel></rss>