<?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[Klassen, structs, unions]]></title><description><![CDATA[<p>Hallo zusammen,<br />
ich habe ein paar Fragen bezüglich Klassen, Structs und Unions.</p>
<p>1.) Man könnte ja eine Klasse definieren und dann einfach den Namen &quot;class&quot; durch &quot;struct&quot; ersetzen. Ich weiß, dass beim struct<br />
alle Elemente standartgemäß als öffentlich deklariert werden, um die Schnittstelle zu C zu wahren. Doch wo würden andere Unterschiede liegen.<br />
Kennt ein struct sowas wie Vererbung und Polymorphie oder liegen hier die Privilegien einer Klasse?</p>
<p>2.) Wenn ich zwei Objekte einer Klasse anlege, dann wird nicht zweimal der gleiche Maschinencode angelegt (so wie ich eigentlich<br />
erwartet habe). Ich kann mir das aber nicht so ganz vorstellen, da die beiden Objekte ja eigentlich unabhängig voneinander sind. Teilen die Objekte<br />
sich den Code oder wie läuft das?</p>
<p>Vielen Dank für eure Hilfe<br />
lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/252503/klassen-structs-unions</link><generator>RSS for Node</generator><lastBuildDate>Mon, 14 Sep 2026 09:29:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/252503.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 20 Oct 2009 20:03:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klassen, structs, unions on Tue, 20 Oct 2009 20:03:00 GMT]]></title><description><![CDATA[<p>Hallo zusammen,<br />
ich habe ein paar Fragen bezüglich Klassen, Structs und Unions.</p>
<p>1.) Man könnte ja eine Klasse definieren und dann einfach den Namen &quot;class&quot; durch &quot;struct&quot; ersetzen. Ich weiß, dass beim struct<br />
alle Elemente standartgemäß als öffentlich deklariert werden, um die Schnittstelle zu C zu wahren. Doch wo würden andere Unterschiede liegen.<br />
Kennt ein struct sowas wie Vererbung und Polymorphie oder liegen hier die Privilegien einer Klasse?</p>
<p>2.) Wenn ich zwei Objekte einer Klasse anlege, dann wird nicht zweimal der gleiche Maschinencode angelegt (so wie ich eigentlich<br />
erwartet habe). Ich kann mir das aber nicht so ganz vorstellen, da die beiden Objekte ja eigentlich unabhängig voneinander sind. Teilen die Objekte<br />
sich den Code oder wie läuft das?</p>
<p>Vielen Dank für eure Hilfe<br />
lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1795490</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1795490</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Tue, 20 Oct 2009 20:03:00 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen, structs, unions on Tue, 20 Oct 2009 20:13:55 GMT]]></title><description><![CDATA[<p>1. Nein. struct hat den gleichen Umfang an Möglichkeiten, wie class. Neben dem standardmässigen public gibt es auch noch die standardmässige public Vererbung, welche bei Klassen (wenn nichts angegeben) private ist.</p>
<p>2. Ich verstehe nicht ganz, was du da meinst.. Am Ende im Speicher sind Objekte lediglich ein paar Stellen nebeneinandern, wo die Daten liegen. Die Memberfunktionen sind grundsätzlich gleich, wie in C, ausser, dass du da keinen Zeiger auf das Objekt mitgeben musst. (explizit).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1795499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1795499</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 20 Oct 2009 20:13:55 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen, structs, unions on Tue, 20 Oct 2009 20:15:50 GMT]]></title><description><![CDATA[<ol>
<li>
<p>Das hat man schneller ausprobiert als einen Post hierher geschrieben.<br />
struct IST EINE class, nur mit default-public sollte doch eigentlich alles sagen.</p>
</li>
<li>
<p>Die Member liegen in separaten Speicherstellen, Methoden existieren pro Klasse nur einmal (wäre ja Verschwendung, für jedes Objekt auch die Methoden eigens im RAM abzulegen...)</p>
</li>
</ol>
]]></description><link>https://www.c-plusplus.net/forum/post/1795501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1795501</guid><dc:creator><![CDATA[solarier]]></dc:creator><pubDate>Tue, 20 Oct 2009 20:15:50 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen, structs, unions on Tue, 20 Oct 2009 20:29:51 GMT]]></title><description><![CDATA[<p>ok, vielen Dank schonmal.</p>
<p>Also gibt es eigentlich keinen großen Unterschied zwischen struct und class (außer bei der default Sichtbarkeit)?</p>
<p>Vielen Dank<br />
lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1795514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1795514</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Tue, 20 Oct 2009 20:29:51 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen, structs, unions on Tue, 20 Oct 2009 20:45:18 GMT]]></title><description><![CDATA[<p>freakC++ schrieb:</p>
<blockquote>
<p>ok, vielen Dank schonmal.</p>
<p>Also gibt es eigentlich keinen großen Unterschied zwischen struct und class (außer bei der default Sichtbarkeit)?</p>
<p>Vielen Dank<br />
lg, freakC++</p>
</blockquote>
<p>Nein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1795521</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1795521</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 20 Oct 2009 20:45:18 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen, structs, unions on Tue, 20 Oct 2009 21:37:54 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>freakC++ schrieb:</p>
<blockquote>
<p>ok, vielen Dank schonmal.</p>
<p>Also gibt es eigentlich keinen großen Unterschied zwischen struct und class (außer bei der default Sichtbarkeit)?</p>
<p>Vielen Dank<br />
lg, freakC++</p>
</blockquote>
<p>Nein.</p>
</blockquote>
<p>2 (zugegeben ziemlich kleine) würden mir noch einfallen ;P<br />
bei der forward-deklaration kann man nicht beides mischen</p>
<pre><code class="language-cpp">struct foo;

/*...*/

class foo{ /*...*/ }; //fail...
</code></pre>
<p>bei templates kann man <code>class</code> schreiben aber nicht <code>struct</code> .<br />
mehr sollte es aber nicht geben!?</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1795532</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1795532</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Tue, 20 Oct 2009 21:37:54 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen, structs, unions on Tue, 20 Oct 2009 21:58:15 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>2 (zugegeben ziemlich kleine) würden mir noch einfallen ;P<br />
bei der forward-deklaration kann man nicht beides mischen</p>
<pre><code class="language-cpp">struct foo;

/*...*/

class foo{ /*...*/ }; //fail...
</code></pre>
</blockquote>
<p>Sicher? - Mit Visual Studio geht das. Könnte sein, dass das ein Feature von Visual Studio ist, obwohl ich das normalerweise abgeschalten habe.. *nachschau*..Ja, sogar, wenn Spracherweiterungen aus sind, bekomme ich lediglich eine Warning. Bin jetzt aber zu Müde, um das noch im Standard nachzuschlagen. <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="😉"
    /> - Aber ich hatte sowieso auch im Kopf, dass das mischen sogar erlaubt ist.</p>
<p>OK. Das class bei den templates hat so ziemlich eine andere semantische Bedeutung.</p>
<p>Ich glaube ich hatte mal etwas von wegen alignmend oder padding gesehen, was bei struct und class anderst gehandhabt wird. Weiss aber nicht mehr genau, was es war.. Auf jeden Fall nicht von grosser Bedeutung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1795540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1795540</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 20 Oct 2009 21:58:15 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen, structs, unions on Tue, 20 Oct 2009 22:19:50 GMT]]></title><description><![CDATA[<p>Streng genommen sind in C++ sowohl <code>union</code> als auch <code>class</code> und <code>struct</code> Klassentypen. Hier meine Meinung, was ungefähr wie einzusetzen ist:</p>
<ul>
<li>In C++ kommt <code>union</code> kaum zur Geltung, da es nur mit PODs funktioniert, nicht gerade sehr typsicher ist und die Funktionalität eher selten gebraucht wird. In vielen Fällen existieren bessere Alternativen (ich meine jetzt nicht nur <code>boost::variant</code> ).</li>
<li><code>class</code> handhaben eigentlich alle C++-Programmierer als das, was man üblicherweise unter Klassen versteht (z.B. Kapselung, Konstruktoren/Destruktoren, Methoden, Vererbung, Polymorphie).</li>
<li><code>struct</code> wird meist als reines Datenbündel eingesetzt, also ähnlich wie in C. Ich selbst füge immer Konstruktoren hinzu, um eine Initialisierung sicherzustellen. Andere typisch objektorientierte Features setze ich bei <code>struct</code> s hingegen nicht ein.</li>
</ul>
]]></description><link>https://www.c-plusplus.net/forum/post/1795543</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1795543</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 20 Oct 2009 22:19:50 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen, structs, unions on Tue, 20 Oct 2009 22:40:32 GMT]]></title><description><![CDATA[<p>Das halte ich so ähnlich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1795547</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1795547</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 20 Oct 2009 22:40:32 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen, structs, unions on Tue, 20 Oct 2009 22:48:14 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>unskilled schrieb:</p>
<blockquote>
<p>2 (zugegeben ziemlich kleine) würden mir noch einfallen ;P<br />
bei der forward-deklaration kann man nicht beides mischen</p>
<pre><code class="language-cpp">struct foo;

/*...*/

class foo{ /*...*/ }; //fail...
</code></pre>
</blockquote>
<p>Sicher?</p>
</blockquote>
<p>Bis gerade eben schon xD<br />
Aber jz beim Testen hab ich auch nur noch die Warning - hab ich mich wohl wirklich geirrt, weil ich auf anhieb jz nix gefunden habe, wo steht, dass das nen problem geben würde...<br />
vll hab ich ja morgen mal lange weile - dann guck ich mal im standard, ob ich iwas dazu find^^</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1795549</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1795549</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Tue, 20 Oct 2009 22:48:14 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen, structs, unions on Thu, 22 Oct 2009 08:26:08 GMT]]></title><description><![CDATA[<p>Hey,<br />
vielen Dank noch für die späte Hilfe. Ich persönlich habe noch nie mit unions gearbeitet und werde wahrscheinlich erstmal weiterhin mit struct und class herumtwerkeln.</p>
<p>Bis bald!<br />
lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1796190</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1796190</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Thu, 22 Oct 2009 08:26:08 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen, structs, unions on Thu, 22 Oct 2009 11:09:41 GMT]]></title><description><![CDATA[<p>Zugegeben. Ich habe bist jetzt union ausserhalb von Tests noch nie ernsthaft gebraucht..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1796301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1796301</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 22 Oct 2009 11:09:41 GMT</pubDate></item></channel></rss>