<?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[vector - delete bei Objekten?]]></title><description><![CDATA[<p>Müssen die wie folgt erzeugten Objekte explizit bereinigt werden, oder übernimmt das der Vector für mich?</p>
<pre><code class="language-cpp">{
...
std::vector&lt;Package&gt; packages;
packages.push_back(Package());
...
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/178629/vector-delete-bei-objekten</link><generator>RSS for Node</generator><lastBuildDate>Tue, 06 Oct 2026 14:09:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/178629.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 13 Apr 2007 02:29:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to vector - delete bei Objekten? on Fri, 13 Apr 2007 02:29:30 GMT]]></title><description><![CDATA[<p>Müssen die wie folgt erzeugten Objekte explizit bereinigt werden, oder übernimmt das der Vector für mich?</p>
<pre><code class="language-cpp">{
...
std::vector&lt;Package&gt; packages;
packages.push_back(Package());
...
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1265026</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1265026</guid><dc:creator><![CDATA[uwe_guest]]></dc:creator><pubDate>Fri, 13 Apr 2007 02:29:30 GMT</pubDate></item><item><title><![CDATA[Reply to vector - delete bei Objekten? on Fri, 13 Apr 2007 04:10:35 GMT]]></title><description><![CDATA[<p>das übernimmt der vector nehm ich, allerding solltest du für die klasse deiner objekte einen destruktor haben welcher evtl. dynamisch allokierte Objekte in deinem Objekt bereinigt.</p>
<p>GRüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1265031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1265031</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Fri, 13 Apr 2007 04:10:35 GMT</pubDate></item><item><title><![CDATA[Reply to vector - delete bei Objekten? on Wed, 09 Jan 2008 20:21:51 GMT]]></title><description><![CDATA[<p>Da mein problem zu diesem hier ganz gut passt, stelle ich die Frage hier, damit nicht unnötig ein neuer Thread eröffnet werden muss.</p>
<p>meine Klasse:</p>
<pre><code class="language-cpp">class ANN
{
   ...
   NEURON *neurons;
   public:
      ANN(int iNneu, int iNwid);
      ~ANN();
   ...
};
</code></pre>
<p>Kontruktor (erzeugt diverse Objekte der Klasse NEURON):</p>
<pre><code class="language-cpp">ANN::ANN(int iNneu, int iNwei)       
{ 
   std::vector&lt;NEURON*&gt; neurons;
   for (int x = 0; x &lt; iWidth; x++)
      for (int y = 0; y &lt; iHeight; y++)
         neurons.push_back (new NEURON( (float)x, (float)y, iNwei, 0) );
}
</code></pre>
<p>Destruktor (soll alle Objekte der Klasse NEURON wieder zerstören und dabei auch den Destruktor der Klasse NEURON aufrufen).</p>
<p>Das hier funzt nicht:</p>
<pre><code class="language-cpp">ANN::~ANN()
{
   for (int a = 0; a &lt; iNneurons; a++)        
   { 
      delete neurons[a];
   }    
}
</code></pre>
<p>wo liegt der Fehler in dem Destruktor?</p>
<p>wie rufe ich den Destruktor der Klasse NEURON auf?</p>
<p>ich bin gerade im Umstieg von C auf C++, also verzeiht mir bitte meine anfänger-fragen <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/1433930</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1433930</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Wed, 09 Jan 2008 20:21:51 GMT</pubDate></item><item><title><![CDATA[Reply to vector - delete bei Objekten? on Wed, 09 Jan 2008 20:30:59 GMT]]></title><description><![CDATA[<p>iNneurons -- was ist das vür ne variable? definiert is die net.</p>
<p>ebenfalls ist das neurons, in das du im konstruktor schreibst, lokal zum konstruktor, da du es neu deklarierst (als vector).</p>
<p>schreib besser:</p>
<pre><code class="language-cpp">class ANN
{
   ...
   std::vector&lt;NEURON*&gt; neurons;
   public:
      ANN(int iNneu, int iNwid);
      ~ANN();
   ...
};
</code></pre>
<pre><code class="language-cpp">ANN::ANN(int iNneu, int iNwei)       
{ 
   for (int x = 0; x &lt; iWidth; x++)
      for (int y = 0; y &lt; iHeight; y++)
         neurons.push_back (new NEURON( (float)x, (float)y, iNwei, 0) );
}
</code></pre>
<pre><code class="language-cpp">ANN::~ANN()
{
   while(neurons.size)
   { 
      delete neurons.back();
      neurons.pop_back();
   }    
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1433942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1433942</guid><dc:creator><![CDATA[piXelshooter]]></dc:creator><pubDate>Wed, 09 Jan 2008 20:30:59 GMT</pubDate></item><item><title><![CDATA[Reply to vector - delete bei Objekten? on Wed, 09 Jan 2008 20:50:46 GMT]]></title><description><![CDATA[<p>vielen dank <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>
<p>Funktionieren tut es. Ich hoffe dass ich dann soweit auch alles an Speicher wieder freigegeben habe. Bei verschachtelten Klassen bin ich noch etwas unsicher <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>
<p>Ich hoffe dass :</p>
<pre><code class="language-cpp">delete neurons.back();
</code></pre>
<p>dann auch automatisch den NEURON::~NEURON() aufruft, weil dort auch noch Speicher freigegeben wird, der in der Klasse NEURON lokal verwendet wird.</p>
<p>Soll ja auch alles Sauber programmiert sein <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/1433961</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1433961</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Wed, 09 Jan 2008 20:50:46 GMT</pubDate></item><item><title><![CDATA[Reply to vector - delete bei Objekten? on Wed, 09 Jan 2008 20:59:12 GMT]]></title><description><![CDATA[<p>ja. delete ruft zuerst den destruktor auf und gibt dann den speicher frei. also gibt das keine speicherlöcher <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/1433968</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1433968</guid><dc:creator><![CDATA[piXelshooter]]></dc:creator><pubDate>Wed, 09 Jan 2008 20:59:12 GMT</pubDate></item><item><title><![CDATA[Reply to vector - delete bei Objekten? on Wed, 09 Jan 2008 21:25:36 GMT]]></title><description><![CDATA[<p>wundervoll! Vielen Dank <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/1433986</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1433986</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Wed, 09 Jan 2008 21:25:36 GMT</pubDate></item><item><title><![CDATA[Reply to vector - delete bei Objekten? on Thu, 10 Jan 2008 13:53:06 GMT]]></title><description><![CDATA[<p>Wundert mich das der Code von piXelshooter geht. size ist keine Variable sondern eine Funktion!</p>
<pre><code class="language-cpp">ANN::ANN(int iNneu, int iNwei)      
{
   for (int x = 0; x &lt; iWidth; x++)
      for (int y = 0; y &lt; iHeight; y++)
         neurons.push_back (new NEURON( (float)x, (float)y, iNwei, 0) );
}
</code></pre>
<p>. Hier beachten, das du eh in der Schleife werte &gt; 0 erhälst (x = 0; x++) und deswegen unsigned angebracht ist. Dann Ist Preinkrementierung Postinkrementierung vorzuziehen <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="😉"
    /><br />
Und zu guter letzt castet man unter C++ nicht C-Style! (static_cast&lt;float&gt;(x) wäre besser!). Warum erzeugst du eigtl. überhaupt alles Zeiger? Nimm doch einfach #</p>
<pre><code class="language-cpp">// std::vector&lt;NEURON&gt; neurons;

neurons.push_back(NEURON(static_cast&lt;float&gt;(x), static_cast&lt;float&gt;(y), iNwei, 0));
</code></pre>
<p>und spart dir damit das manuelle Aufräumen, da das dann vom vector selbst gemacht wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1434289</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1434289</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 10 Jan 2008 13:53:06 GMT</pubDate></item></channel></rss>