<?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[delete bei Klassen]]></title><description><![CDATA[<p>Hallo!</p>
<p>Also hier ist meine Beispiel Klasse :</p>
<pre><code class="language-cpp">class MyClass
{
public :
MyClass();
void free(); //hier ist meine Frage
};
</code></pre>
<p>So wenn ich die Klasse nun so implentiere :</p>
<pre><code class="language-cpp">MyClass* mc = new MyClass();
</code></pre>
<p>dann brauche ich ja als gegenstück für</p>
<pre><code class="language-cpp">new delete
</code></pre>
<p>stimmt es dann, wenn die free(); Funktion so aussieht :</p>
<pre><code class="language-cpp">void free(MyClass* meineklasse){delete meineklasse;}
</code></pre>
<p>?<br />
Danke sehr im voraus <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/topic/299213/delete-bei-klassen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 13 Aug 2026 10:48:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/299213.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 05 Feb 2012 18:57:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to delete bei Klassen on Sun, 05 Feb 2012 18:57:14 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Also hier ist meine Beispiel Klasse :</p>
<pre><code class="language-cpp">class MyClass
{
public :
MyClass();
void free(); //hier ist meine Frage
};
</code></pre>
<p>So wenn ich die Klasse nun so implentiere :</p>
<pre><code class="language-cpp">MyClass* mc = new MyClass();
</code></pre>
<p>dann brauche ich ja als gegenstück für</p>
<pre><code class="language-cpp">new delete
</code></pre>
<p>stimmt es dann, wenn die free(); Funktion so aussieht :</p>
<pre><code class="language-cpp">void free(MyClass* meineklasse){delete meineklasse;}
</code></pre>
<p>?<br />
Danke sehr im voraus <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/2177330</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2177330</guid><dc:creator><![CDATA[4ex0F2]]></dc:creator><pubDate>Sun, 05 Feb 2012 18:57:14 GMT</pubDate></item><item><title><![CDATA[Reply to delete bei Klassen on Sun, 05 Feb 2012 19:02:35 GMT]]></title><description><![CDATA[<p>Hä?<br />
Wie kommst du darauf, dass du so eine Funktion implementieren musst?!</p>
<p>Ein einfaches</p>
<pre><code class="language-cpp">delete mc;
</code></pre>
<p>reicht schon.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2177333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2177333</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 05 Feb 2012 19:02:35 GMT</pubDate></item><item><title><![CDATA[Reply to delete bei Klassen on Sun, 05 Feb 2012 19:04:25 GMT]]></title><description><![CDATA[<p>Also stimmt die Funktion free(); so oder nicht.Das war eig. meine Frage.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2177334</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2177334</guid><dc:creator><![CDATA[4ex0F2]]></dc:creator><pubDate>Sun, 05 Feb 2012 19:04:25 GMT</pubDate></item><item><title><![CDATA[Reply to delete bei Klassen on Sun, 05 Feb 2012 19:07:58 GMT]]></title><description><![CDATA[<p>4ex0F2 schrieb:</p>
<blockquote>
<p>Also stimmt die Funktion free(); so oder nicht.Das war eig. meine Frage.</p>
</blockquote>
<p>Ich bin mir sehr sicher, dass du hier sehr grundlegende Dinge über Klassen, Objekte und dynamische Speicherverwaltung nicht verstanden hast. Ich kann aber nicht genau den Finger drauf legen, was genau dein Problem ist, da du dich sehr kurz fasst. Jedenfalls ist der Code mehr als ungewöhnlich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2177336</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2177336</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 05 Feb 2012 19:07:58 GMT</pubDate></item><item><title><![CDATA[Reply to delete bei Klassen on Sun, 05 Feb 2012 19:08:11 GMT]]></title><description><![CDATA[<p>Nein.</p>
<pre><code class="language-cpp">void free(MyClass* meineklasse)
</code></pre>
<p>bezeichnet keine Methode. Du könntest</p>
<pre><code class="language-cpp">void MyClass::free()
</code></pre>
<p>schreiben, aber wenn du in deinem Code</p>
<pre><code class="language-cpp">delete this;
</code></pre>
<p>stehen hast, will ich nicht mit dir zusammenarbeiten müssen.</p>
<p>Überhaupt ist nacktes new/delete keine gute Idee. Besser:</p>
<pre><code class="language-cpp">std::unique_ptr&lt;MyClass&gt; mc = new MyClass();
</code></pre>
<p>oder gleich</p>
<pre><code class="language-cpp">MyClass mc;
</code></pre>
<p>Wir sind hier ja nicht im Java-Forum.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2177337</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2177337</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Sun, 05 Feb 2012 19:08:11 GMT</pubDate></item><item><title><![CDATA[Reply to delete bei Klassen on Sun, 05 Feb 2012 19:16:28 GMT]]></title><description><![CDATA[<p>ist</p>
<pre><code class="language-cpp">MyClass* p = new MyClass;
p-&gt;free(p);
</code></pre>
<p>überhaupt ein definiertes Verhalten? Also wenn die Methode das Objekt deleted, mit dem sie aufgerufen wurde?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2177341</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2177341</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 05 Feb 2012 19:16:28 GMT</pubDate></item><item><title><![CDATA[Reply to delete bei Klassen on Sun, 05 Feb 2012 19:45:23 GMT]]></title><description><![CDATA[<p>mich wuerds ned wundern wenn ein compiler auf <code>delete this</code> mit &quot;geh hin(fort) und lies ein buch&quot; antworten wuerd ...</p>
<p>// ok, aber guter stil[tm] kanns ned sein...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2177345</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2177345</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Sun, 05 Feb 2012 19:45:23 GMT</pubDate></item><item><title><![CDATA[Reply to delete bei Klassen on Sun, 05 Feb 2012 19:31:06 GMT]]></title><description><![CDATA[<p><a href="http://www.parashift.com/c++-faq-lite/freestore-mgmt.html#faq-16.15" rel="nofollow">http://www.parashift.com/c++-faq-lite/freestore-mgmt.html#faq-16.15</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2177347</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2177347</guid><dc:creator><![CDATA[pyhax]]></dc:creator><pubDate>Sun, 05 Feb 2012 19:31:06 GMT</pubDate></item><item><title><![CDATA[Reply to delete bei Klassen on Mon, 06 Feb 2012 04:57:16 GMT]]></title><description><![CDATA[<p>Ich sags mal so. Das geht an sich schon, ist &quot;richtig&quot; in dem Sinne, das es wohl funktioniert (vorausgesetzt, du schreibst wie seldon bemerkt hat void MyClass::free(MyClass* meineklasse){delete meineklasse;} )</p>
<p>Aber warum sollte man sowas machen?</p>
<p>Planst du sowas?</p>
<pre><code class="language-cpp">MyClass* p = new MyClass;
//Do stuff
p-&gt;free(p);
</code></pre>
<p>Warum nicht gleich</p>
<pre><code class="language-cpp">MyClass* p = new MyClass;
//Do stuff
delete p;
</code></pre>
<p>?</p>
<p>Deine Funktion, so wie du sie vorschlägst ist einfach sinnlos. Deswegen fällt es den Leuten auch so schwer, die Frage zu beantworten, ob sie &quot;richtig&quot; sei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2177443</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2177443</guid><dc:creator><![CDATA[kleiner Troll]]></dc:creator><pubDate>Mon, 06 Feb 2012 04:57:16 GMT</pubDate></item><item><title><![CDATA[Reply to delete bei Klassen on Mon, 06 Feb 2012 07:13:24 GMT]]></title><description><![CDATA[<p>@kleinerTroll: Wieso nicht gleich <code>Myclass mc;</code> ? Sind Stackobjekte verboden oder was? Wie seldon schon gesagt hat, wir sind hier nicht im Java-Forum.</p>
<p>Ich dachte einen kleinen Moment, er will den delete-operator überladen (was ich ihm garantiert nicht empfehlen würde).</p>
<p>Vielleicht will der TE ja wissen, was ein Destruktor ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2177454</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2177454</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 06 Feb 2012 07:13:24 GMT</pubDate></item><item><title><![CDATA[Reply to delete bei Klassen on Mon, 06 Feb 2012 08:25:22 GMT]]></title><description><![CDATA[<p>seldon schrieb:</p>
<blockquote>
<p>Überhaupt ist nacktes new/delete keine gute Idee. Besser:</p>
<pre><code class="language-cpp">std::unique_ptr&lt;MyClass&gt; mc = new MyClass();
</code></pre>
</blockquote>
<p>Das hat der Herr Stroustrup in seinem GoingNative2012 keynote talk auch gebracht. Allerdings ist der unique_ptr-Konstruktor, der einen rohen Zeiger entgegen nimmt, <code>explicit</code> . Du musst also die direkte Initialisierung hierfür nutzen; denn diese Kopierinitialisierung wird nicht functionieren -- zumindest nicht portabel. Mag sein, dass Microsoft da das explicit vergessen hat, so wie sie das auch schon bei auto_ptr vergessen haben (wenn ich mich da richtig erinnere).</p>
<p>seldon schrieb:</p>
<blockquote>
<p>oder gleich</p>
<pre><code class="language-cpp">MyClass mc;
</code></pre>
<p>Wir sind hier ja nicht im Java-Forum.</p>
</blockquote>
<p>Sicher. Wenn so die Lebenszeit von mc kein Problem darstellt und die MyClass-Definition kein großes, &quot;direktes&quot; Array als Datenelement besitzt, ist das völlig in Ordnung und sollte sogar bevorzugt werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2177473</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2177473</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Mon, 06 Feb 2012 08:25:22 GMT</pubDate></item><item><title><![CDATA[Reply to delete bei Klassen on Mon, 06 Feb 2012 11:15:40 GMT]]></title><description><![CDATA[<blockquote>
<p>@kleinerTroll: Wieso nicht gleich Myclass mc; ? Sind Stackobjekte verboden oder was? Wie seldon schon gesagt hat, wir sind hier nicht im Java-Forum.</p>
</blockquote>
<p>Hin und wieder braucht man halt new+delete. Es schadet einem Anfänger nicht, das zu verstehen. Ihr habt ja recht das man es meist vermeiden kann (und soll), das hilft aber nicht zu erklären wie man es denn verwendet, wenn man muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2177535</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2177535</guid><dc:creator><![CDATA[kleiner Troll]]></dc:creator><pubDate>Mon, 06 Feb 2012 11:15:40 GMT</pubDate></item></channel></rss>