<?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[mehrfach delete?]]></title><description><![CDATA[<p>Also ich hab da zwo konkrete fragen zum thema delete,<br />
da ich von java auf c++ gewechselt bin, bin ich garbage-collector verwöhnt.<br />
1.) Ist es eigentlich schlimm ein und dasselbe objekt zweimal zu &quot;deleten&quot;?</p>
<p>2.) wenn man den pointer auf ein objekt verloren hat(überschrieben...) kann man das objekt trotzdem irgendwie wiederfinden(um es zu löschen).</p>
<p>Hab zwar nicht vor das in der praxis zu gebrauchen aber es interessiert mich.<br />
thx</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/165850/mehrfach-delete</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 05:27:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/165850.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 23 Nov 2006 15:53:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to mehrfach delete? on Thu, 23 Nov 2006 15:53:51 GMT]]></title><description><![CDATA[<p>Also ich hab da zwo konkrete fragen zum thema delete,<br />
da ich von java auf c++ gewechselt bin, bin ich garbage-collector verwöhnt.<br />
1.) Ist es eigentlich schlimm ein und dasselbe objekt zweimal zu &quot;deleten&quot;?</p>
<p>2.) wenn man den pointer auf ein objekt verloren hat(überschrieben...) kann man das objekt trotzdem irgendwie wiederfinden(um es zu löschen).</p>
<p>Hab zwar nicht vor das in der praxis zu gebrauchen aber es interessiert mich.<br />
thx</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180130</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180130</guid><dc:creator><![CDATA[QarateKid]]></dc:creator><pubDate>Thu, 23 Nov 2006 15:53:51 GMT</pubDate></item><item><title><![CDATA[Reply to mehrfach delete? on Thu, 23 Nov 2006 16:02:24 GMT]]></title><description><![CDATA[<p>Hallo</p>
<blockquote>
<p>1.) Ist es eigentlich schlimm ein und dasselbe objekt zweimal zu &quot;deleten&quot;?</p>
</blockquote>
<p>Falls du das so meinst</p>
<pre><code class="language-cpp">MyClass* x = new MyClass();
delete x;
delete x;
</code></pre>
<p>dann ja, das ist schlimmt und führt zu Speicherzugriffsfehlern</p>
<blockquote>
<p>wenn man den pointer auf ein objekt verloren hat(überschrieben...) kann man das objekt trotzdem irgendwie wiederfinden(um es zu löschen).</p>
</blockquote>
<p>Nein, denn im Speicher selber ist nicht zu unterscheiden, was gültig und was nicht. Das weiß nur deine Programmlogik.</p>
<p>In C++ ist es wichtig und sinnvoll, mit <a href="http://de.wikipedia.org/wiki/RAII" rel="nofollow">RAII</a> zu arbeiten.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180135</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180135</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Thu, 23 Nov 2006 16:02:24 GMT</pubDate></item><item><title><![CDATA[Reply to mehrfach delete? on Thu, 23 Nov 2006 16:09:30 GMT]]></title><description><![CDATA[<p>QarateKid schrieb:</p>
<blockquote>
<p>1.) Ist es eigentlich schlimm ein und dasselbe objekt zweimal zu &quot;deleten&quot;?</p>
</blockquote>
<p>akari hat dazu ja schon was gesagt. Wenn du aber nach einem delete deinen Zeiger auf 0 (oder NULL) setzt, dann kann dir nichts passieren, wenn du dann nochmal (aus welchem Grund auch immer) ein delete auf den Zeiger durchführst:</p>
<pre><code class="language-cpp">MyClass* x = new MyClass();
delete x;
x=0;
delete x; // Kein Problem mehr
</code></pre>
<p>Greetz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180142</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180142</guid><dc:creator><![CDATA[Vellas]]></dc:creator><pubDate>Thu, 23 Nov 2006 16:09:30 GMT</pubDate></item><item><title><![CDATA[Reply to mehrfach delete? on Fri, 24 Nov 2006 07:18:45 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/3227">@vellas</a>: Ja, diesen einfachen Fall kannst du damit abfangen - aber wenn du von mehreren Stellen aus das selbe Objekt delete'n willst, bekommst du immer noch Probleme.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13749">@QarateKid</a>: Wenn du auf der sicheren Seite sein willst, nimm Smart-Pointer (z.B. boost::shared_ptr) - die können selber mitverfolgen, wann sie ein Objekt löschen dürfen/müssen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180460</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 24 Nov 2006 07:18:45 GMT</pubDate></item><item><title><![CDATA[Reply to mehrfach delete? on Fri, 24 Nov 2006 08:21:35 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>...@QarateKid: Wenn du auf der sicheren Seite sein willst, nimm Smart-Pointer (z.B. boost::shared_ptr) - die können selber mitverfolgen, wann sie ein Objekt löschen dürfen/müssen.</p>
</blockquote>
<p>Alternativ darf man sich ruhig eine Zeit lang mit dem Thema &quot;ownership&quot; beschäftigen. <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 />
Es ist nämlich ein Konzept/eine Denkweise, das/die sich auch in anderen Zusammenhängen als hilfreich erweisen.<br />
(Nichts gegen Java, aber es ist mir schon öfter aufgefallen, dass Java anscheinend ein wenig dazu anreizt, mit der Frage, wer eigentlich an einem Objekt herumändert, etwas zu schlunzen; .... und hinterher im Abhängigkeitswirrwar unterzugehen)</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180495</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180495</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Fri, 24 Nov 2006 08:21:35 GMT</pubDate></item><item><title><![CDATA[Reply to mehrfach delete? on Fri, 24 Nov 2006 10:58:18 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/3227">@vellas</a>: Ja, diesen einfachen Fall kannst du damit abfangen - aber wenn du von mehreren Stellen aus das selbe Objekt delete'n willst, bekommst du immer noch Probleme.</p>
</blockquote>
<p>Jo, stimmt. Bissl an Member in Klassen gedacht. Wenn man da nach jedem löschen einen Zeiger auf 0 setzt (und sichergestellt ist das dieser nicht außerhalb der Klasse verändert werden kann) macht das später im Destruktor nichts mehr. <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="🙂"
    /><br />
Aber ich benutz ja nimmer so oft Zeiger, die nicht in Smart-Pointern (oder eventuell auto_ptr) gekapselt sind. ^^</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13624">@Simon2</a>:<br />
Zu der Aussage mit Java kann ich dir nur zustimmen. Aber das Problem hat man wohl allgemein wenn man mit GC arbeitet (ich weiß wieso ich nicht gerne in C# arbeite).</p>
<p>Greetz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180607</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180607</guid><dc:creator><![CDATA[Vellas]]></dc:creator><pubDate>Fri, 24 Nov 2006 10:58:18 GMT</pubDate></item><item><title><![CDATA[Reply to mehrfach delete? on Fri, 24 Nov 2006 11:56:04 GMT]]></title><description><![CDATA[<p>Vellas schrieb:</p>
<blockquote>
<p>... GC ...</p>
</blockquote>
<p>Games Convention ? gnu compiler ? ...</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180643</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180643</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Fri, 24 Nov 2006 11:56:04 GMT</pubDate></item><item><title><![CDATA[Reply to mehrfach delete? on Fri, 24 Nov 2006 11:59:18 GMT]]></title><description><![CDATA[<p>Dachte das wäre allgemein bekannt als Garbage Collection...naja, zumindest war das gemeint. <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>Greetz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180645</guid><dc:creator><![CDATA[Vellas]]></dc:creator><pubDate>Fri, 24 Nov 2006 11:59:18 GMT</pubDate></item><item><title><![CDATA[Reply to mehrfach delete? on Fri, 24 Nov 2006 12:37:50 GMT]]></title><description><![CDATA[<p>Vellas schrieb:</p>
<blockquote>
<p>Dachte das wäre allgemein bekannt als Garbage Collection...naja, zumindest war das gemeint. <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>Greetz</p>
</blockquote>
<p>Aha !!</p>
<p>Danke - ehrlich gesagt: Da wäre ich nicht drauf gekommen...</p>
<p>Vellas schrieb:</p>
<blockquote>
<p>...Aber das Problem hat man wohl allgemein wenn man mit GC arbeitet ...</p>
</blockquote>
<p>Ich denke, die &quot;komplette Verzeigerung&quot; spielt da auch eine Rolle: In C++ weiß ich , wann ich mir &quot;ein fremdes Objekt besorge&quot; (weil Referenz oder Zeiger) und habe die Chance, mit &quot;direkt&quot; mit Objekten (die dann genau mir gehören) zu arbeiten - das habe ich in Java so nicht. IIRC auch keine &quot;const-Parameter&quot; und &quot;const-Funktionen&quot;, oder ? ...</p>
<p>Das sind halt Konzepte, die &quot;Ownership&quot; nahelegen....</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1180670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1180670</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Fri, 24 Nov 2006 12:37:50 GMT</pubDate></item><item><title><![CDATA[Reply to mehrfach delete? on Mon, 27 Nov 2006 01:58:36 GMT]]></title><description><![CDATA[<p>danke an alle für die tipps und antworten,<br />
werd mich mal als erstes mit smart pointern eingehender beschäftigen, denk ich am plausibelsten,<br />
ansonsten ist doch alles eine designfrage(ownership), damit haben wohl alle hier recht.<br />
Durch &quot;gc&quot;-garbage c... mußte man sich um nicht verwiesene objekte in java nicht kümmern, in c/c++ ist das anders, das war mir schon klar.<br />
Da hat man mit c/c++ als programmierer mehr verantwortung als in java, dafür aber mehr kontrolle!<br />
na ja ich krieg das schon hin, thx</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1181995</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1181995</guid><dc:creator><![CDATA[QarateKid]]></dc:creator><pubDate>Mon, 27 Nov 2006 01:58:36 GMT</pubDate></item></channel></rss>