<?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[Objekte lieber auf den Stack oder Heap erzeugen?]]></title><description><![CDATA[<p>Hi,</p>
<p>ich kann ja ein Objekt meiner Klasse auf dem Stack oder per new auf dem Heap erzeugen. Wie entscheidet ihr welchen Weg ihr wählt?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/271434/objekte-lieber-auf-den-stack-oder-heap-erzeugen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 13:41:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/271434.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 28 Jul 2010 09:17:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Objekte lieber auf den Stack oder Heap erzeugen? on Wed, 28 Jul 2010 09:17:45 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich kann ja ein Objekt meiner Klasse auf dem Stack oder per new auf dem Heap erzeugen. Wie entscheidet ihr welchen Weg ihr wählt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1932964</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1932964</guid><dc:creator><![CDATA[cppfrager]]></dc:creator><pubDate>Wed, 28 Jul 2010 09:17:45 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte lieber auf den Stack oder Heap erzeugen? on Wed, 28 Jul 2010 09:30:51 GMT]]></title><description><![CDATA[<p>Ich würde nicht zwischen Stack und Heap, sondern zwischen automatischer und dynamischer Speicheranforderung unterscheiden. Das ist <strong>nicht</strong> das Gleiche.</p>
<p>Meist – vor allem für lokale Variablen – sind automatische Objekte (Speicherklasse <code>auto</code> ) die beste Wahl. Gründe, zum dynamischen Speicher zu greifen, sind unter anderem:</p>
<ul>
<li>Sehr grosse Objekte (wobei viele intern auch dynamisch Speicher anfordern, sodass sich das relativiert)</li>
<li>Polymorphie in vielen Fällen</li>
<li>Spezifische Anforderungen an die Objekt-Lebensdauer</li>
<li>Einfacheres Herumschieben im Speicher (z.B. auch für nichtkopierbare Objekte)</li>
</ul>
<p>Aber manuelles <code>new</code> und <code>delete</code> verwende ich sehr selten, das ist mir zu fehleranfällig. Oft kapsle ich dynamischen Speicher mittels geeigneter Klassen (Smart-Pointer und Container sind die gebräuchlichsten).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1932969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1932969</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 28 Jul 2010 09:30:51 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte lieber auf den Stack oder Heap erzeugen? on Wed, 28 Jul 2010 09:30:55 GMT]]></title><description><![CDATA[<p>Danke für die Antwort, bei mir kann ich nur per new das Objekt anlegen,ansonsten erahlte ich die Fehlermeldung</p>
<pre><code>error LNK2019: Verweis auf nicht aufgelöstes externes Symbol &quot;&quot;public: __thiscall Window::~Window(void)&quot; (??1Window@@QAE@XZ)&quot; in Funktion &quot;_WinMain@16&quot;.
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1932978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1932978</guid><dc:creator><![CDATA[cppfrager]]></dc:creator><pubDate>Wed, 28 Jul 2010 09:30:55 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte lieber auf den Stack oder Heap erzeugen? on Wed, 28 Jul 2010 09:32:48 GMT]]></title><description><![CDATA[<p>Was ist <code>Window</code> für eine Klasse? Gehört sie zu einem dieser netten Frameworks, welche den Programmierer zu dynamischer Speicheranforderung zwingen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1932979</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1932979</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 28 Jul 2010 09:32:48 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte lieber auf den Stack oder Heap erzeugen? on Wed, 28 Jul 2010 09:34:30 GMT]]></title><description><![CDATA[<p>ne da habe ich nur versucht die Fenstererzeugung in eine Klasse zu packen. Wenn ich das Objekt mit new erzeuge funktioniert auch alles wunderbar. nur wenn ich es mit z.b Window mein_fester(....) erzeuge kommt der Linkerfehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1932980</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1932980</guid><dc:creator><![CDATA[cppfrager]]></dc:creator><pubDate>Wed, 28 Jul 2010 09:34:30 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte lieber auf den Stack oder Heap erzeugen? on Wed, 28 Jul 2010 09:37:14 GMT]]></title><description><![CDATA[<p>Das sieht mir so aus, als ob du mit deiner new-Variante nicht delete benutzt, weshalb der Destruktor von Window nicht benötigt wird, bei auto hingegen wird der Destruktor automatisch aufgerufen, und das kann er nicht, weil du ihn nur deklariert, aber nicht definiert hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1932981</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1932981</guid><dc:creator><![CDATA[Ad aCTa]]></dc:creator><pubDate>Wed, 28 Jul 2010 09:37:14 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte lieber auf den Stack oder Heap erzeugen? on Wed, 28 Jul 2010 09:44:42 GMT]]></title><description><![CDATA[<p>Ich verneige mich vor dir großer Meister, genau das war es. Den Destruktor definiert und alles lief wie geschmiert <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/1932987</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1932987</guid><dc:creator><![CDATA[cppfrager]]></dc:creator><pubDate>Wed, 28 Jul 2010 09:44:42 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte lieber auf den Stack oder Heap erzeugen? on Wed, 28 Jul 2010 09:49:33 GMT]]></title><description><![CDATA[<p>Und nie <code>delete</code> vergessen! Das meinte ich mit &quot;fehleranfällig&quot;... <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>(War hier wohl nur ein kurzer Test, aber Speicherfreigabe geht genügend oft zu schnell in Vergessenheit).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1932990</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1932990</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 28 Jul 2010 09:49:33 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte lieber auf den Stack oder Heap erzeugen? on Wed, 28 Jul 2010 12:23:11 GMT]]></title><description><![CDATA[<p>Ja das habe ich auch so gelesen. Ist das richtig das man dann new und delete am besten in einen konstruktor und destruktor einer KLasse packt damit man dann nach RAII vorgeht, also die Speicherfreigabe dann automatisch geschieht wenn das objekt z.B. durch scope verlassen zerstört wird?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1933078</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933078</guid><dc:creator><![CDATA[cppfrager]]></dc:creator><pubDate>Wed, 28 Jul 2010 12:23:11 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte lieber auf den Stack oder Heap erzeugen? on Wed, 28 Jul 2010 12:26:04 GMT]]></title><description><![CDATA[<p>cppfrager schrieb:</p>
<blockquote>
<p>Ja das habe ich auch so gelesen. Ist das richtig das man dann new und delete am besten in einen konstruktor und destruktor einer KLasse packt damit man dann nach RAII vorgeht, also die Speicherfreigabe dann automatisch geschieht wenn das objekt z.B. durch scope verlassen zerstört wird?</p>
</blockquote>
<p>Ja, dies ist üblicherweise eine sehr gute Idee.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1933082</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933082</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 28 Jul 2010 12:26:04 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte lieber auf den Stack oder Heap erzeugen? on Wed, 28 Jul 2010 12:34:56 GMT]]></title><description><![CDATA[<p>cppfrager schrieb:</p>
<blockquote>
<p>Ja das habe ich auch so gelesen. Ist das richtig das man dann new und delete am besten in einen konstruktor und destruktor einer KLasse packt damit man dann nach RAII vorgeht, also die Speicherfreigabe dann automatisch geschieht wenn das objekt z.B. durch scope verlassen zerstört wird?</p>
</blockquote>
<p>Sofern kein besonderer Grund vorliegt, bastelst du die Klasse aber besser nicht selbst, sondern verwendest eine der vorhandenen Smartpointerklassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1933088</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933088</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Wed, 28 Jul 2010 12:34:56 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte lieber auf den Stack oder Heap erzeugen? on Thu, 29 Jul 2010 12:40:26 GMT]]></title><description><![CDATA[<p>So, nachdem mir hier so nett geholfen wurde habe ich mich angemeldet. Danke nochmals, ich werde bestimmt noch viele Fragen haben da ich erst jetzt wieder mit C++ anfangen und früher aber auch nicht gerade weit gelernt hatte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1933544</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933544</guid><dc:creator><![CDATA[cppfrager]]></dc:creator><pubDate>Thu, 29 Jul 2010 12:40:26 GMT</pubDate></item></channel></rss>