<?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[Speicherbedarf von Klassen und deren Methoden in Arrays und Containern]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich mache mir gerade Gedanken bzgl. des Speicherbedarfs von Methoden in einer Klasse.</p>
<p>Bei den Daten ist das ja klar, habe ich ein Array von 10 int sind das 10x4 Bytes.</p>
<p>Aber wie ist das mit den Methoden? Habe ich bei z.B. einem Array von 10 Klassen auch 10x die Methoden kopiert, oder (was eig. logisch wäre) habe ich nur jeweils einen Verweis im Speicher? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Thx im Voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/320849/speicherbedarf-von-klassen-und-deren-methoden-in-arrays-und-containern</link><generator>RSS for Node</generator><lastBuildDate>Wed, 22 Jul 2026 13:14:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/320849.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 14 Oct 2013 15:49:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Speicherbedarf von Klassen und deren Methoden in Arrays und Containern on Mon, 14 Oct 2013 15:49:24 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich mache mir gerade Gedanken bzgl. des Speicherbedarfs von Methoden in einer Klasse.</p>
<p>Bei den Daten ist das ja klar, habe ich ein Array von 10 int sind das 10x4 Bytes.</p>
<p>Aber wie ist das mit den Methoden? Habe ich bei z.B. einem Array von 10 Klassen auch 10x die Methoden kopiert, oder (was eig. logisch wäre) habe ich nur jeweils einen Verweis im Speicher? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Thx im Voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2360235</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2360235</guid><dc:creator><![CDATA[mcam77]]></dc:creator><pubDate>Mon, 14 Oct 2013 15:49:24 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherbedarf von Klassen und deren Methoden in Arrays und Containern on Mon, 14 Oct 2013 16:03:12 GMT]]></title><description><![CDATA[<p>&quot;Methoden&quot; sind normale Funktionen. Sie kosten bei Objekten keinen Speicher. Virtuelle Memberfunktionen hingegen kosten typischerweise insgesamt einen Pointer. Du kannst also deinen Objekten beliebig viele Funktionen mitgeben, bei std::string sind es ~150.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2360240</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2360240</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Mon, 14 Oct 2013 16:03:12 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherbedarf von Klassen und deren Methoden in Arrays und Containern on Mon, 14 Oct 2013 16:08:16 GMT]]></title><description><![CDATA[<p>mcam77 schrieb:</p>
<blockquote>
<p>Bei den Daten ist das ja klar, habe ich ein Array von 10 int sind das 10x4 Bytes.</p>
</blockquote>
<p>Ja das ist gut möglich. Es könnten unter Umständen aber auch 20 Bytes sein.</p>
<p>mcam77 schrieb:</p>
<blockquote>
<p>Habe ich bei z.B. einem Array von 10 Klassen auch 10x die Methoden kopiert, oder (was eig. logisch wäre) habe ich nur jeweils einen Verweis im Speicher? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
</blockquote>
<p>Ne. Für eine Methode wird nur 1x Speicher angelegt. Um nun zu wissen, auf welches Objekt sich eine Methode beziehen soll, hat jede Methode den zusätzlichen Parameter <code>this</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2360241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2360241</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Mon, 14 Oct 2013 16:08:16 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherbedarf von Klassen und deren Methoden in Arrays und Containern on Tue, 15 Oct 2013 02:11:56 GMT]]></title><description><![CDATA[<p>Supi, Thx ihr beide</p>
<p><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/2360356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2360356</guid><dc:creator><![CDATA[mcam77]]></dc:creator><pubDate>Tue, 15 Oct 2013 02:11:56 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherbedarf von Klassen und deren Methoden in Arrays und Containern on Tue, 15 Oct 2013 09:38:21 GMT]]></title><description><![CDATA[<p>Dazu mal grad ne Frage: Ich habe mal gehört, dass Funktionen/Methoden, die im Quellcode hinternander implementiert wurden später auch im Speicher nebeneinander leigen. Stimmt das? Oder kommt das auf den Compiler an?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2360385</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2360385</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Tue, 15 Oct 2013 09:38:21 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherbedarf von Klassen und deren Methoden in Arrays und Containern on Tue, 15 Oct 2013 09:40:00 GMT]]></title><description><![CDATA[<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>Oder kommt das auf den Compiler an?</p>
</blockquote>
<p>^ - Wozu auch immer das relevant sein sollte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2360386</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2360386</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Tue, 15 Oct 2013 09:40:00 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherbedarf von Klassen und deren Methoden in Arrays und Containern on Tue, 15 Oct 2013 09:50:43 GMT]]></title><description><![CDATA[<p>Naja, ich habs selbst nicht gelesen, en Kollege meinte das mal, als er ein Buch für Spieleprogrammierung am lesen war.</p>
<p>Das Argument dafür war halt, dass es so weniger Cache-Misses gibt, wenn man die Methoden/Funktion halbwegs intelligent ordnet in der Implementierungsreihenfolge.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2360390</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2360390</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Tue, 15 Oct 2013 09:50:43 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherbedarf von Klassen und deren Methoden in Arrays und Containern on Tue, 15 Oct 2013 10:23:45 GMT]]></title><description><![CDATA[<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>Naja, ich habs selbst nicht gelesen, en Kollege meinte das mal, als er ein Buch für Spieleprogrammierung am lesen war.</p>
<p>Das Argument dafür war halt, dass es so weniger Cache-Misses gibt, wenn man die Methoden/Funktion halbwegs intelligent ordnet in der Implementierungsreihenfolge.</p>
</blockquote>
<p>Haha. Also ich könnte mir gut vorstellen, daß Funktionen in Deklarationsreihenfolge oper Definitionsreihenfolge später in die exe geworfen werden. Die Datenstrukturen, die zu solchen Verhalten führen würden, scheinen mir naheliegender als welche, die zu alphabetischer oder zufälliger Ausgabe führen würden.</p>
<p>Schau auch mal auf die Attribute hot und cold auf<br />
<a href="http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html" rel="nofollow">http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2360397</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2360397</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 15 Oct 2013 10:23:45 GMT</pubDate></item></channel></rss>