<?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[invalid use of &#x27;union xxxx&#x27;]]></title><description><![CDATA[<p>Hallo zusammen.</p>
<p>Ich habe ein ziemlich verpacktes struct, dass eine union enthält und dann wieder ein struct.</p>
<p>Aber leider kann ich auf die unteren Ebenen nicht zugreiffe weil sonst der Fehler 'invalid use of 'union ISSDef::ISSrequestRecT::EventClass' erscheint.</p>
<p>struct:</p>
<pre><code class="language-cpp">struct ISSrequestRecT{
        union EventClass{
            struct TKHeventClass{
                TKHeventRecT tkhEvent;
            };
            struct RAKeventClass{
                RAKeventRecT rakEvent;
            };
            struct PASeventClass{
                PASeventRecT pasEvent;
            };
            struct FLUeventClass{
                FLUeventRecT fluEvent;
            };
            struct ANAeventClass{
                ANAeventRecT anaEvent;
            };
            struct SWEeventClass{
                SWEeventRecT sweEvent;
            };
        };
    };
</code></pre>
<p>Aufruf</p>
<pre><code class="language-cpp">rISSPacket.request.EventClass.rakEvent.insertCodeLW
</code></pre>
<p>Kann mir jemand von euch weiterhelfen?</p>
<p>Gruss, Dane</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/279863/invalid-use-of-union-xxxx</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 09:03:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/279863.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 05 Jan 2011 09:47:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to invalid use of &#x27;union xxxx&#x27; on Wed, 05 Jan 2011 09:47:16 GMT]]></title><description><![CDATA[<p>Hallo zusammen.</p>
<p>Ich habe ein ziemlich verpacktes struct, dass eine union enthält und dann wieder ein struct.</p>
<p>Aber leider kann ich auf die unteren Ebenen nicht zugreiffe weil sonst der Fehler 'invalid use of 'union ISSDef::ISSrequestRecT::EventClass' erscheint.</p>
<p>struct:</p>
<pre><code class="language-cpp">struct ISSrequestRecT{
        union EventClass{
            struct TKHeventClass{
                TKHeventRecT tkhEvent;
            };
            struct RAKeventClass{
                RAKeventRecT rakEvent;
            };
            struct PASeventClass{
                PASeventRecT pasEvent;
            };
            struct FLUeventClass{
                FLUeventRecT fluEvent;
            };
            struct ANAeventClass{
                ANAeventRecT anaEvent;
            };
            struct SWEeventClass{
                SWEeventRecT sweEvent;
            };
        };
    };
</code></pre>
<p>Aufruf</p>
<pre><code class="language-cpp">rISSPacket.request.EventClass.rakEvent.insertCodeLW
</code></pre>
<p>Kann mir jemand von euch weiterhelfen?</p>
<p>Gruss, Dane</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002546</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002546</guid><dc:creator><![CDATA[Dane__]]></dc:creator><pubDate>Wed, 05 Jan 2011 09:47:16 GMT</pubDate></item><item><title><![CDATA[Reply to invalid use of &#x27;union xxxx&#x27; on Wed, 05 Jan 2011 10:58:29 GMT]]></title><description><![CDATA[<p>EventClass enthält kein Feld namens rakEvent. Es enthält überhaupt nichts, nur ein paar lokale Klassendefinitionen. Und auch ISSrequestRecT enthält nichts, außer einer lokalen Uniondefinition namens EventClass.</p>
<p>Bevor ich das aber verbessere: Überdenke dein Design. Gerade bei der Benutzung von Union schellen in C++ alle Designfehleralarmglocken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002575</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002575</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 05 Jan 2011 10:58:29 GMT</pubDate></item><item><title><![CDATA[Reply to invalid use of &#x27;union xxxx&#x27; on Wed, 05 Jan 2011 11:21:07 GMT]]></title><description><![CDATA[<p>Wie kann ich dann auf die unteren Elemente zugreiffen?<br />
rakEvent, pasEvent, etc.? <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2002593</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002593</guid><dc:creator><![CDATA[Dane__]]></dc:creator><pubDate>Wed, 05 Jan 2011 11:21:07 GMT</pubDate></item><item><title><![CDATA[Reply to invalid use of &#x27;union xxxx&#x27; on Wed, 05 Jan 2011 11:24:10 GMT]]></title><description><![CDATA[<p>Dane__ schrieb:</p>
<blockquote>
<p>Wie kann ich dann auf die unteren Elemente zugreiffen?<br />
rakEvent, pasEvent, etc.? <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>
</blockquote>
<p>Gar nicht. Es gibt diese Elemente gar nicht. Denke erstmal selber darüber nach, wieso das so ist, sonst verstehst du die Lösung nicht.</p>
<p>Und wie schon gesagt, wäre die direkte Lösung vermutlich sowieso total vermurkstes Design.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002596</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002596</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 05 Jan 2011 11:24:10 GMT</pubDate></item><item><title><![CDATA[Reply to invalid use of &#x27;union xxxx&#x27; on Wed, 05 Jan 2011 11:31:59 GMT]]></title><description><![CDATA[<p>Das EventClass ist glaube zu viel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002603</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002603</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Wed, 05 Jan 2011 11:31:59 GMT</pubDate></item><item><title><![CDATA[Reply to invalid use of &#x27;union xxxx&#x27; on Wed, 05 Jan 2011 11:46:33 GMT]]></title><description><![CDATA[<p>Ich glaube ich verstehe den Sinn &amp; Zweck von diesen structs in diesem Falle nicht.</p>
<p>Für mich ist ein struct / union eine ganz einfache Verschachtelung von Datentypen.<br />
Der Unterschied zw. struct &amp; union ist, dass man bei struct auf alle Elemente zugreiffen kann und bei einem Union immer nur auf eines.</p>
<p>Ich muss zugeben ich befinde mich noch auf dünnem Eis was das Ganze angeht. <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>cheers</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002606</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002606</guid><dc:creator><![CDATA[Dane__]]></dc:creator><pubDate>Wed, 05 Jan 2011 11:46:33 GMT</pubDate></item><item><title><![CDATA[Reply to invalid use of &#x27;union xxxx&#x27; on Wed, 05 Jan 2011 12:25:26 GMT]]></title><description><![CDATA[<p>Dane__ schrieb:</p>
<blockquote>
<p>Ich muss zugeben ich befinde mich noch auf dünnem Eis was das Ganze angeht. <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>
</blockquote>
<p>Du hast hier etwas viel Grundlegenderes nicht verstanden:</p>
<pre><code class="language-cpp">// Dies ist die Deklaration der Klasse foo. Statt class kann da auch struct oder union stehen:
class foo{
};

// foo ist von nun an ein Datentyp im Programm:
foo bar;
// bar ist ein Objekt vom Typ foo. Es gibt aber kein Objekt mit Namen foo.
</code></pre>
<pre><code class="language-cpp">// Es gibt auch noch eine ältere, selten benutzte Möglichkeit das gleiche zu erreichen:
class foo{
} bar;
// foo ist jetzt ein Datentyp und bar ist ein Objekt vom Typ foo
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2002619</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002619</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 05 Jan 2011 12:25:26 GMT</pubDate></item><item><title><![CDATA[Reply to invalid use of &#x27;union xxxx&#x27; on Wed, 05 Jan 2011 12:35:32 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ja das Ganze ist mir schon klar.</p>
<p>Ich erstelle ja auch ein Objekt vom Typ ISSrequestRecT.</p>
<pre><code class="language-cpp">struct ISStcpPacketT{
        unsigned short int length;
        ISSrequestRecT request; // &lt;--
    };
</code></pre>
<pre><code class="language-cpp">ISStcpPacketT rISSPacket;
</code></pre>
<p>Nun will ich über das erstellte Objekt request auf die anderen Datentypen zugreiffen.</p>
<p>Hmm.. Wobei ich glaube langsam leuchtet es mir ein.<br />
Müsste ich also anstatt</p>
<pre><code class="language-cpp">struct ISSrequestRecT{
        union EventClass{
            struct TKHeventClass{
                TKHeventRecT tkhEvent;
            };
            struct RAKeventClass{
                RAKeventRecT rakEvent;
            };
            struct PASeventClass{
                PASeventRecT pasEvent;
            };
            struct FLUeventClass{
                FLUeventRecT fluEvent;
            };
            struct ANAeventClass{
                ANAeventRecT anaEvent;
            };
            struct SWEeventClass{
                SWEeventRecT sweEvent;
            };
        } ;
    };
</code></pre>
<p>Sowas in der Art Zusammenbasteln?</p>
<pre><code class="language-cpp">struct ISSrequestRecT{
        union EventClass{
            struct TKHeventClass{
                TKHeventRecT tkhEvent;
            } myTKHeventClass;
            struct RAKeventClass{
                RAKeventRecT rakEvent;
            } myRAKeventClass;
            struct PASeventClass{
                PASeventRecT pasEvent;
            } myPASeventClass;
            struct FLUeventClass{
                FLUeventRecT fluEvent;
            } myFLUeventClass;
            struct ANAeventClass{
                ANAeventRecT anaEvent;
            } myANAeventClass;
            struct SWEeventClass{
                SWEeventRecT sweEvent;
            } mySWEeventClass;
        } myEventClass;
    };
</code></pre>
<p>?</p>
<p>Und dann mittels</p>
<pre><code class="language-cpp">rISSPacket.request.myEventClass.myTKHeventClass.tkhEvent.event = TKHreconstituted;
</code></pre>
<p>zugreiffen?</p>
<p>grz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002624</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002624</guid><dc:creator><![CDATA[Dane__]]></dc:creator><pubDate>Wed, 05 Jan 2011 12:35:32 GMT</pubDate></item><item><title><![CDATA[Reply to invalid use of &#x27;union xxxx&#x27; on Wed, 05 Jan 2011 12:43:53 GMT]]></title><description><![CDATA[<p>Ja.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002628</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 05 Jan 2011 12:43:53 GMT</pubDate></item><item><title><![CDATA[Reply to invalid use of &#x27;union xxxx&#x27; on Wed, 05 Jan 2011 12:51:05 GMT]]></title><description><![CDATA[<p>Warum legst du überhaupt diese ganzen Strukturen mit nur einem Member an?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002631</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002631</guid><dc:creator><![CDATA[Paul Müller]]></dc:creator><pubDate>Wed, 05 Jan 2011 12:51:05 GMT</pubDate></item><item><title><![CDATA[Reply to invalid use of &#x27;union xxxx&#x27; on Wed, 05 Jan 2011 12:52:59 GMT]]></title><description><![CDATA[<p>Paul Müller schrieb:</p>
<blockquote>
<p>Warum legst du überhaupt diese ganzen Strukturen mit nur einem Member an?</p>
</blockquote>
<p>Noch mehr Designfehler. Aber die Hinweise darauf werden ja ohnehin ignoriert. Die technischen Aspekte der Frage sollten aber wohl beantwortet sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002632</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 05 Jan 2011 12:52:59 GMT</pubDate></item><item><title><![CDATA[Reply to invalid use of &#x27;union xxxx&#x27; on Wed, 05 Jan 2011 13:21:04 GMT]]></title><description><![CDATA[<p>Vielleicht kommt später da noch etwas dazu.</p>
<p>Ansonsten macht mir doch Vorschläge wie ihr das ganze aufbauen würded.</p>
<p>grz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002653</guid><dc:creator><![CDATA[Dane__]]></dc:creator><pubDate>Wed, 05 Jan 2011 13:21:04 GMT</pubDate></item><item><title><![CDATA[Reply to invalid use of &#x27;union xxxx&#x27; on Wed, 05 Jan 2011 13:23:50 GMT]]></title><description><![CDATA[<p>Naja, die ganzen <code>struct</code> s weglassen, die Member aber behalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002657</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Wed, 05 Jan 2011 13:23:50 GMT</pubDate></item><item><title><![CDATA[Reply to invalid use of &#x27;union xxxx&#x27; on Wed, 05 Jan 2011 13:29:09 GMT]]></title><description><![CDATA[<p>Das hängt natürlich in erster Linie von den Details ab, die du erst später vielleicht noch nachreichen willst. <em>Wie</em> man etwas macht, hängt in erster Linie davon ab, <em>was</em> man erreichen will. Statt einer Union könnte man es aber auch mit Polymorphie probieren. Dass ist nicht nur sicherer als eine Union, sondern erleichtert auch die Umsetzung enorm. Weil du nicht mehr wissen musst welches Event den nun genau in der Union liegt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002660</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002660</guid><dc:creator><![CDATA[Paul Müller]]></dc:creator><pubDate>Wed, 05 Jan 2011 13:29:09 GMT</pubDate></item></channel></rss>