<?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[Wie viele bytes ist ein class?]]></title><description><![CDATA[<p>ich denke, dass die ganze struktur von ein &quot;class&quot; ein paar bytes konsumiert.<br />
zb,</p>
<pre><code class="language-cpp">class ex {
public:
int mcounter;
}
</code></pre>
<p>das object wird grosser als 2bytes (normaler weise) sein.. 2bytes fur den int, und etwas mehr fur andere objekt sachen...</p>
<p>ist es so? und wenn es so ist, wie gross sind diese &quot;anderen sachen&quot;?</p>
<p>noch ein beispiel:<br />
in ein tcp/ip packet,<br />
die informationen die wir mochten(der int) sind zb 1,5kb..<br />
aber, das packet ist 1,7kb.. das heisst: in diesen 0.2kb sind andere informationen gespeichert(tcp/ip headers -&gt; andere informationen fur das objekt)...</p>
<p>ich hoffe das ich es gut bescrieben hab..</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/173287/wie-viele-bytes-ist-ein-class</link><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 06:39:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/173287.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 13 Feb 2007 18:37:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie viele bytes ist ein class? on Tue, 13 Feb 2007 18:37:43 GMT]]></title><description><![CDATA[<p>ich denke, dass die ganze struktur von ein &quot;class&quot; ein paar bytes konsumiert.<br />
zb,</p>
<pre><code class="language-cpp">class ex {
public:
int mcounter;
}
</code></pre>
<p>das object wird grosser als 2bytes (normaler weise) sein.. 2bytes fur den int, und etwas mehr fur andere objekt sachen...</p>
<p>ist es so? und wenn es so ist, wie gross sind diese &quot;anderen sachen&quot;?</p>
<p>noch ein beispiel:<br />
in ein tcp/ip packet,<br />
die informationen die wir mochten(der int) sind zb 1,5kb..<br />
aber, das packet ist 1,7kb.. das heisst: in diesen 0.2kb sind andere informationen gespeichert(tcp/ip headers -&gt; andere informationen fur das objekt)...</p>
<p>ich hoffe das ich es gut bescrieben hab..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1228306</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1228306</guid><dc:creator><![CDATA[StreamKid]]></dc:creator><pubDate>Tue, 13 Feb 2007 18:37:43 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele bytes ist ein class? on Tue, 13 Feb 2007 18:41:13 GMT]]></title><description><![CDATA[<p>ich kenne jetzt keine konkrete Antwort auf deine Frage, aber was sagt denn ein sizeof()?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1228309</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1228309</guid><dc:creator><![CDATA[_Vic_]]></dc:creator><pubDate>Tue, 13 Feb 2007 18:41:13 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele bytes ist ein class? on Tue, 13 Feb 2007 18:43:08 GMT]]></title><description><![CDATA[<p>Soweit ich weiß hängt dass davon ab ob du ein 32 Bit ; 64 Bit etc. System hast</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1228310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1228310</guid><dc:creator><![CDATA[Raxtor]]></dc:creator><pubDate>Tue, 13 Feb 2007 18:43:08 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele bytes ist ein class? on Tue, 13 Feb 2007 18:48:13 GMT]]></title><description><![CDATA[<p>Sicherlich,</p>
<p>ich vermute mal, dass man die Größe eines Objektes (jetzt ohne pointer etc) immer gleich bleibt, und dass die Information über die Klassenstruktur separat gesichert wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1228315</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1228315</guid><dc:creator><![CDATA[_Vic_]]></dc:creator><pubDate>Tue, 13 Feb 2007 18:48:13 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele bytes ist ein class? on Tue, 13 Feb 2007 18:52:03 GMT]]></title><description><![CDATA[<p>StreamKid schrieb:</p>
<blockquote>
<p>ist es so? und wenn es so ist, wie gross sind diese &quot;anderen sachen&quot;?</p>
</blockquote>
<p>Die &quot;anderen Sachen&quot; sind bei ganz normalen Klassen ohne virtuelle Funktionen und virtuelle Vererbung nur die Basisklassenobjekte und vielleicht noch ein paar <a href="http://de.wikipedia.org/wiki/Speicherausrichtung" rel="nofollow">Padding-Bytes</a>.</p>
<p>StreamKid schrieb:</p>
<blockquote>
<p>noch ein beispiel:<br />
in ein tcp/ip packet,<br />
die informationen die wir mochten(der int) sind zb 1,5kb..<br />
aber, das packet ist 1,7kb.. das heisst: in diesen 0.2kb sind andere informationen gespeichert(tcp/ip headers -&gt; andere informationen fur das objekt)...</p>
</blockquote>
<p>IP-Pakete haben mal sowas von gar nichts mit C++-Klassen/Objekten zu tun...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1228319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1228319</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Tue, 13 Feb 2007 18:52:03 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele bytes ist ein class? on Tue, 13 Feb 2007 18:57:15 GMT]]></title><description><![CDATA[<p><em>Vic</em> schrieb:</p>
<blockquote>
<p>Sicherlich,</p>
<p>ich vermute mal, dass man die Größe eines Objektes (jetzt ohne pointer etc) immer gleich bleibt, und dass die Information über die Klassenstruktur separat gesichert wird.</p>
</blockquote>
<p>Laut meinen Infos entspricht ein longlong int auf einem 32 Bit System (ohne longlong 2<sup>32</sup>)<br />
einem int auf einem 64 Bit System(2<sup>64</sup>)</p>
<p>Bin mir aber nicht sicher</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1228324</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1228324</guid><dc:creator><![CDATA[Raxtor]]></dc:creator><pubDate>Tue, 13 Feb 2007 18:57:15 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele bytes ist ein class? on Tue, 13 Feb 2007 19:08:37 GMT]]></title><description><![CDATA[<p><em>Vic</em> schrieb:</p>
<blockquote>
<p>ich vermute mal, dass man die Größe eines Objektes (jetzt ohne pointer etc) immer gleich bleibt, und dass die Information über die Klassenstruktur separat gesichert wird.</p>
</blockquote>
<p>Wie meinen? Informationen über die Klassenstruktur existieren nach dem Kompilieren praktisch nicht mehr! Und deshalb ist auch die Größe eines Objektes (und die Position und Größe dessen Member) einer Klasse immer gleich, sonst würden viele Dereferenzierungen ins Nirwana gehen.</p>
<p>Digger182 schrieb:</p>
<blockquote>
<p>Laut meinen Infos entspricht ein longlong int auf einem 32 Bit System (ohne longlong 2<sup>32</sup>)<br />
einem int auf einem 64 Bit System(2<sup>64</sup>)</p>
</blockquote>
<p>long long ist kein Standard. Die Größen der integralen Datentypen sind eh nicht wirklich festgelegt, es gilt so weit ich weiß nur immer sizeof (char) == 1 =&lt; sizeof(short) =&lt; sizeof(int) =&lt; sizeof(long). Zeigergrößen sind davon unabhängig (aber immer gleich, abgesehen von Methodenzeigern).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1228331</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1228331</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Tue, 13 Feb 2007 19:08:37 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele bytes ist ein class? on Tue, 13 Feb 2007 19:08:45 GMT]]></title><description><![CDATA[<p>sizeof(ex) gibt bei mir auf einem 64bit System genau 4 aus.<br />
Also keine Paddings.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1228332</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1228332</guid><dc:creator><![CDATA[THX 1138]]></dc:creator><pubDate>Tue, 13 Feb 2007 19:08:45 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele bytes ist ein class? on Tue, 13 Feb 2007 20:42:06 GMT]]></title><description><![CDATA[<p>WTF, kein Padding bei genau einem Member <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> Sachen gibts <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1228367</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1228367</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Tue, 13 Feb 2007 20:42:06 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele bytes ist ein class? on Wed, 14 Feb 2007 08:05:57 GMT]]></title><description><![CDATA[<p>Tja unglaublich, aber wahr <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1228511</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1228511</guid><dc:creator><![CDATA[THX 1138]]></dc:creator><pubDate>Wed, 14 Feb 2007 08:05:57 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele bytes ist ein class? on Wed, 14 Feb 2007 10:01:14 GMT]]></title><description><![CDATA[<p>.filmor schrieb:</p>
<blockquote>
<p><em>Vic</em> schrieb:</p>
<blockquote>
<p>ich vermute mal, dass man die Größe eines Objektes (jetzt ohne pointer etc) immer gleich bleibt, und dass die Information über die Klassenstruktur separat gesichert wird.</p>
</blockquote>
<p>Wie meinen? Informationen über die Klassenstruktur existieren nach dem Kompilieren praktisch nicht mehr! Und deshalb ist auch die Größe eines Objektes (und die Position und Größe dessen Member) einer Klasse immer gleich, sonst würden viele Dereferenzierungen ins Nirwana gehen.</p>
<p>Digger182 schrieb:</p>
<blockquote>
<p>Laut meinen Infos entspricht ein longlong int auf einem 32 Bit System (ohne longlong 2<sup>32</sup>)<br />
einem int auf einem 64 Bit System(2<sup>64</sup>)</p>
</blockquote>
<p>long long ist kein Standard. Die Größen der integralen Datentypen sind eh nicht wirklich festgelegt, es gilt so weit ich weiß nur immer sizeof (char) == 1 =&lt; sizeof(short) =&lt; sizeof(int) =&lt; sizeof(long). Zeigergrößen sind davon unabhängig (aber immer gleich, abgesehen von Methodenzeigern).</p>
</blockquote>
<p>Der Standard macht keine Aussagen über die Größe von Zeigern. Es ist plausibel anzunehmen, das Zeiger auf verschiedene Objekte mit gleichen Alignment-Voraussetzungen die gleiche Größe haben, aber selbst das dürfte nicht zwingend gefordert sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1228577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1228577</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 14 Feb 2007 10:01:14 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele bytes ist ein class? on Wed, 14 Feb 2007 10:10:51 GMT]]></title><description><![CDATA[<p>Ich glaube mal die Frage zielte darauf ob ein class irgendeinen overhead hat.<br />
Normalerweise ist das nicht der Fall.<br />
Hast du jedoch eine virtuelle Funktion (z.B. auch virtueller destructor) schleppt jede Instanz halt noch den Pointer auf sein virtelle function table mit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1228580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1228580</guid><dc:creator><![CDATA[templäd]]></dc:creator><pubDate>Wed, 14 Feb 2007 10:10:51 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele bytes ist ein class? on Wed, 14 Feb 2007 10:59:10 GMT]]></title><description><![CDATA[<p>Bezüglich dieses Themas sollte man sich auch mit dem Begriff <a href="http://de.wikipedia.org/wiki/C++-Glossar#POD" rel="nofollow">POD</a> auseinandersetzen. Der Artikel <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-159231.html" rel="nofollow">Speicherverwaltung in C++ (und C)</a> von CStoll ist auch recht interessant.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1228604</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1228604</guid><dc:creator><![CDATA[old school]]></dc:creator><pubDate>Wed, 14 Feb 2007 10:59:10 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele bytes ist ein class? on Wed, 14 Feb 2007 13:13:20 GMT]]></title><description><![CDATA[<p>generell gilt zu beachten was für ein System etc. Warum auch ein long double nicht immer ein long double ist <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>Warum manchmal Zeiger größer sind als der Reine Wert der eigentlich gespeichert wird etc. Es hängt einfach vom verwendeten System ab.</p>
<p>Wenn ich in einen 64 Bit System zeiger auf ints speichere ist das ziemlich blöd. Weil der Zeiger ja 64 Bit breit ist und der int selber nur 32 <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 wer wird denn so auf solchen overhead achten? Vor allem bei den Vorteilen der OOP? Ob meine klasse nun 2 oder 10 byte braucht ist mir relativ egal. Solange sie das tut was sie soll. Wenns wirklich ums byte feilschen geht ist OOP dann eh nicht mehr so angebracht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1228728</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1228728</guid><dc:creator><![CDATA[Fedaykin]]></dc:creator><pubDate>Wed, 14 Feb 2007 13:13:20 GMT</pubDate></item><item><title><![CDATA[Reply to Wie viele bytes ist ein class? on Wed, 14 Feb 2007 13:43:44 GMT]]></title><description><![CDATA[<p>Naja gerade was padding bytes angeht muss man immer aufpassen. Siehe nur ein einfaches Beispiel:</p>
<pre><code class="language-cpp">struct TestGross
{
   char a;
   long b;
   char c;
   long d;
   char e;
   long f;
};

struct TestKlein
{
   long a;
   long b;
   long c;
   char d;
   char e;
   char f;
};
int _tmain(int argc, _TCHAR* argv[])
{
   std::cout &lt;&lt; sizeof(TestGross) &lt;&lt; std::endl; //24 bei mir
   std::cout &lt;&lt; sizeof(TestKlein) &lt;&lt; std::endl; //16 bei mir

	return 0;
}
</code></pre>
<p>und auch die paar bytes für den pointer auf den vtable sind manchmal nicht zu verachten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1228761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1228761</guid><dc:creator><![CDATA[templäd]]></dc:creator><pubDate>Wed, 14 Feb 2007 13:43:44 GMT</pubDate></item></channel></rss>