<?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[class &amp;lt;=&amp;gt; struct &amp;lt;=&amp;gt; union]]></title><description><![CDATA[<p>Mal ne ganz allgemeine Frage... *doppelpunkt* ^^</p>
<p>Also ich versuch das ma so weit zusammenzufassen, wie ich denke, es verstanden zu haben:</p>
<p>In C++ sind class und struct identisch (abgesehen vom default-access) - oder!? Und wo war eigtl in C dort der unterschied? Ein union ist &quot;kleiner&quot; als class habe ich gelesen - aber so richtig kapiert / verstanden (mein englisch is da iwie zu schlecht für -.-) hab ich dieses kleiner noch nicht..<br />
'Use only one member at a time'<br />
Wie ist das gemeint? Das ich, wenn ich mit Threads arbeite, das gesamte Union locken muss - egal, was ich daran mache? oder ist das anders gemeint (im vergl. class+struct: 'No usage constraints')<br />
und dann gibst in der msdn extra noch nen diagramm 'Storage of Data in NumericType Union' - aber irgendwie find ich das logisch - oder gibts da iwas besonderes, was ich nicht gesehen habe? (Also dort wird die Größe von &quot;einfachen&quot; und von double werten angegeben, die sich in nem union befinden)...<br />
Das einzige, was ich über union weiß ist, dass es weder virtuelle fkt, noch statische member &quot;kennt&quot;... Dann steht dort auch noch folgendes in etwa: '[kennt public, protected und private aber kann weder vererbt werden noch geerbt werden]'... Warum kennt es dann trotzdem protected?</p>
<p>Danke ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/204856/class-lt-gt-struct-lt-gt-union</link><generator>RSS for Node</generator><lastBuildDate>Thu, 08 Oct 2026 18:51:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/204856.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 07 Feb 2008 17:47:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to class &amp;lt;=&amp;gt; struct &amp;lt;=&amp;gt; union on Thu, 07 Feb 2008 17:47:19 GMT]]></title><description><![CDATA[<p>Mal ne ganz allgemeine Frage... *doppelpunkt* ^^</p>
<p>Also ich versuch das ma so weit zusammenzufassen, wie ich denke, es verstanden zu haben:</p>
<p>In C++ sind class und struct identisch (abgesehen vom default-access) - oder!? Und wo war eigtl in C dort der unterschied? Ein union ist &quot;kleiner&quot; als class habe ich gelesen - aber so richtig kapiert / verstanden (mein englisch is da iwie zu schlecht für -.-) hab ich dieses kleiner noch nicht..<br />
'Use only one member at a time'<br />
Wie ist das gemeint? Das ich, wenn ich mit Threads arbeite, das gesamte Union locken muss - egal, was ich daran mache? oder ist das anders gemeint (im vergl. class+struct: 'No usage constraints')<br />
und dann gibst in der msdn extra noch nen diagramm 'Storage of Data in NumericType Union' - aber irgendwie find ich das logisch - oder gibts da iwas besonderes, was ich nicht gesehen habe? (Also dort wird die Größe von &quot;einfachen&quot; und von double werten angegeben, die sich in nem union befinden)...<br />
Das einzige, was ich über union weiß ist, dass es weder virtuelle fkt, noch statische member &quot;kennt&quot;... Dann steht dort auch noch folgendes in etwa: '[kennt public, protected und private aber kann weder vererbt werden noch geerbt werden]'... Warum kennt es dann trotzdem protected?</p>
<p>Danke ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1451419</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1451419</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 07 Feb 2008 17:47:19 GMT</pubDate></item><item><title><![CDATA[Reply to class &amp;lt;=&amp;gt; struct &amp;lt;=&amp;gt; union on Thu, 07 Feb 2008 17:58:53 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>Mal ne ganz allgemeine Frage... *doppelpunkt* ^^</p>
<p>Also ich versuch das ma so weit zusammenzufassen, wie ich denke, es verstanden zu haben:</p>
<p>In C++ sind class und struct identisch (abgesehen vom default-access) - oder!?</p>
</blockquote>
<p>Richtig.</p>
<blockquote>
<p>Und wo war eigtl in C dort der unterschied?</p>
</blockquote>
<p>Darin, dass es in C kein class gab - und dass structs in C keine Methoden haben und nicht von anderen structs erben können.</p>
<blockquote>
<p>Ein union ist &quot;kleiner&quot; als class habe ich gelesen - aber so richtig kapiert / verstanden (mein englisch is da iwie zu schlecht für -.-) hab ich dieses kleiner noch nicht..<br />
'Use only one member at a time'<br />
Wie ist das gemeint? Das ich, wenn ich mit Threads arbeite, das gesamte Union locken muss - egal, was ich daran mache? oder ist das anders gemeint (im vergl. class+struct: 'No usage constraints')</p>
</blockquote>
<p>Ein Union ist insofern kleiner, als dass alle Member den selben Speicher belegen - soll bedeuten, dass in einem union {A a; B b;} entweder ein A oder ein B ist. Wenn man also in einem union eine bestimmte variable setzt, kann man danach auch nur diese Variable auslesen - der Speicher der anderen vriablen wird ja überschrieben.</p>
<pre><code class="language-cpp">union {
int i;     //belegt bei mir 4 byte
double d;  //belegt bei mir 12 byte
} myunion; //belegt 12 byte, da sich i und d den Speicher teilen

myunion.i = 5; //schreib 5 in den int-Bereich
int j = myunion.i; //OK
myunion.d = 12.0; //schreib 12 in den double-bereich - damit ist der int-bereich überschrieben
double d = myunion.d; //OK
in k = myunion.i; //FEHLER!! Im Speicher steht ein double, der versuch, 4 bytes davon als int zu itnerpretieren bringt Murks
</code></pre>
<p>Das machts eventuell Klar, deshalb auch nie zur gleichen Zeit benutzen.</p>
<blockquote>
<p>Warum kennt es dann trotzdem protected?</p>
</blockquote>
<p>Vermutlich aus Gefälligkeit. Da es nichts vererben kann gibts auch keine Kinder die auf protected elemente zugreifen können, daher gilt für unions wohl protected = private.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1451426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1451426</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 07 Feb 2008 17:58:53 GMT</pubDate></item><item><title><![CDATA[Reply to class &amp;lt;=&amp;gt; struct &amp;lt;=&amp;gt; union on Thu, 07 Feb 2008 17:59:43 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>In C++ sind class und struct identisch (abgesehen vom default-access) - oder!?</p>
</blockquote>
<p>Ja.</p>
<p>unskilled schrieb:</p>
<blockquote>
<p>Und wo war eigtl in C dort der unterschied?</p>
</blockquote>
<p>In C gibt's keine Klassen und alle Member einer <code>struct</code> sind public.</p>
<p>unskilled schrieb:</p>
<blockquote>
<p>Ein union ist &quot;kleiner&quot; als class habe ich gelesen - aber so richtig kapiert / verstanden (mein englisch is da iwie zu schlecht für -.-) hab ich dieses kleiner noch nicht..</p>
</blockquote>
<p>Eine Klasse hat mit einem Union garnix zu tun.</p>
<p>unskilled schrieb:</p>
<blockquote>
<p>'Use only one member at a time' Wie ist das gemeint? Das ich, wenn ich mit Threads arbeite, das gesamte Union locken muss - egal, was ich daran mache?</p>
</blockquote>
<p>Ja.</p>
<pre><code class="language-cpp">union foo_t {

    unsigned char memory[ 2 ];
    unsigned short number;
};
</code></pre>
<p>Entweder du greifst über memory auf die zwei Bytes zu, oder über number. Beidesmal ist es der selbe Speicherbereich.</p>
<p>greetz, Swordfish</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1451427</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1451427</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Thu, 07 Feb 2008 17:59:43 GMT</pubDate></item><item><title><![CDATA[Reply to class &amp;lt;=&amp;gt; struct &amp;lt;=&amp;gt; union on Thu, 07 Feb 2008 18:26:47 GMT]]></title><description><![CDATA[<p>ahhhh : &gt;&gt;<br />
Danke - jz wird das alles klar - das macht auf einmal nen sinn, was da steht - komisch ;o)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1451441</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1451441</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 07 Feb 2008 18:26:47 GMT</pubDate></item></channel></rss>