<?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[übergebener Zeiger einer Klasse im Destruktor deleten ?]]></title><description><![CDATA[<p>hallo,</p>
<p>es gibt ja die Möglichkeit eine Klasse mit einem Zeiger zu deklarieren</p>
<pre><code>class CSprite
{
	CSprite();
	~CSprite();
   int Create(char Filename[]);
};

CSprite *SpriteName = new CSprite();

SpriteName-&gt;Create(&quot;test.png&quot;);
</code></pre>
<p>kann man denn diesen übergebenen Zeiger im Destruktor der Klasse deleten ?</p>
<p>Der Sinn dahinter ist, das ich eine Klasse zum Laden von Sprites schreiben will auf Basis von Zeiger (wie im Beispiel gezeigt). Wenn man in einem Spiel aber ein paar hundert Sprites erstellt hat und diese alle einzeln mit delete löschen muss, wäre es sehr umständlich!<br />
Ich möchte Zeiger verwenden, da sie sehr flexibler sind als die normale Deklaration von Klassen.</p>
<p>Thx4Help</p>
<p>MfG, cyby</p>
<p>ps. hoffe mal das ich im richtigen Forumteil bin (mein erster Thread hier <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/topic/199198/übergebener-zeiger-einer-klasse-im-destruktor-deleten</link><generator>RSS for Node</generator><lastBuildDate>Tue, 18 Aug 2026 19:59:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/199198.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 29 Nov 2007 19:42:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to übergebener Zeiger einer Klasse im Destruktor deleten ? on Thu, 29 Nov 2007 19:42:53 GMT]]></title><description><![CDATA[<p>hallo,</p>
<p>es gibt ja die Möglichkeit eine Klasse mit einem Zeiger zu deklarieren</p>
<pre><code>class CSprite
{
	CSprite();
	~CSprite();
   int Create(char Filename[]);
};

CSprite *SpriteName = new CSprite();

SpriteName-&gt;Create(&quot;test.png&quot;);
</code></pre>
<p>kann man denn diesen übergebenen Zeiger im Destruktor der Klasse deleten ?</p>
<p>Der Sinn dahinter ist, das ich eine Klasse zum Laden von Sprites schreiben will auf Basis von Zeiger (wie im Beispiel gezeigt). Wenn man in einem Spiel aber ein paar hundert Sprites erstellt hat und diese alle einzeln mit delete löschen muss, wäre es sehr umständlich!<br />
Ich möchte Zeiger verwenden, da sie sehr flexibler sind als die normale Deklaration von Klassen.</p>
<p>Thx4Help</p>
<p>MfG, cyby</p>
<p>ps. hoffe mal das ich im richtigen Forumteil bin (mein erster Thread hier <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/1412556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1412556</guid><dc:creator><![CDATA[cyby]]></dc:creator><pubDate>Thu, 29 Nov 2007 19:42:53 GMT</pubDate></item><item><title><![CDATA[Reply to übergebener Zeiger einer Klasse im Destruktor deleten ? on Thu, 29 Nov 2007 20:32:33 GMT]]></title><description><![CDATA[<p>cyby schrieb:</p>
<blockquote>
<p>kann man denn diesen übergebenen Zeiger im Destruktor der Klasse deleten ?</p>
</blockquote>
<p>Wenn du std::auto_ptr oder einen anderen Smart-Pointer anstatt eines einfachen Zeigertypen verwendest, ja.</p>
<p>cyby schrieb:</p>
<blockquote>
<p>Wenn man in einem Spiel aber ein paar hundert Sprites erstellt hat und diese alle einzeln mit delete löschen muss, wäre es sehr umständlich!</p>
</blockquote>
<p>Insbesondere wäre es höchst fehleranfällig.</p>
<p>cyby schrieb:</p>
<blockquote>
<p>Ich möchte Zeiger verwenden, da sie sehr flexibler sind als die normale Deklaration von Klassen.</p>
</blockquote>
<p>Bitte erläutere das mal genauer. Inwiefern bist du denn auf Zeiger angewiesen?</p>
<p>Hast du das mit der Create-Funktion von Delphi? Dann laß dich darauf hinweisen, daß Create in Delphi dem Konstruktor in C++ entspricht. Im gegenwärtigen Zustand muß deine Klasse jederzeit damit umgehen können, daß noch kein Sprite geladen wurde und in allen Funktionen entsprechende Fehlerbehandlung einführen. Wenn du anstelle Create gleich den Konstruktor verwendest, um eine zu ladende Datei anzugeben, ist das nicht notwendig.</p>
<p>cyby schrieb:</p>
<blockquote>
<p>ps. hoffe mal das ich im richtigen Forumteil bin (mein erster Thread hier <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>
</blockquote>
<p>Da ich nichts C++Builder-spezifisches entdecken kann, wärest du wohl im C++-Subforum besser dran gewesen <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 />
Vielleicht verschiebt ein Moderator den Thread.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1412582</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1412582</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Thu, 29 Nov 2007 20:32:33 GMT</pubDate></item><item><title><![CDATA[Reply to übergebener Zeiger einer Klasse im Destruktor deleten ? on Fri, 30 Nov 2007 11:22:25 GMT]]></title><description><![CDATA[<p>Warum wird das Objekt überhaupt dynamisch erzeugt? Wenn du mehrere davon hast brauchst du sowieso eine Containerklasse, std::vector böte sich da an.</p>
<pre><code>#include &lt;vector&gt;

// container mit Sprite Objekten
std::vector&lt;CSprite&gt; Sprites;

// neues Sprite Objekt in Container einfügen
CSprite aSprite;
aSprite.Create( &quot;c:\\test.png&quot; );
Sprites.push_back( aSprite );
</code></pre>
<p>Bitte poste mal die komplette CSprite Header Datei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1412808</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1412808</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Fri, 30 Nov 2007 11:22:25 GMT</pubDate></item><item><title><![CDATA[Reply to übergebener Zeiger einer Klasse im Destruktor deleten ? on Fri, 30 Nov 2007 12:16:58 GMT]]></title><description><![CDATA[<p>Versuche hier bitte unnötige Kopien zu vermeiden.</p>
<pre><code class="language-cpp">Sprites.push_back( CSprite());
Sprites.back().Create( &quot;c:\\test.png&quot; );
</code></pre>
<p>Ein defaultmäßig erzeugtes Objekt zu kopieren mag noch gehen. nachdem der Sprite aber erzeugt ist sind das bestimmt mehr Daten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1412859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1412859</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Fri, 30 Nov 2007 12:16:58 GMT</pubDate></item></channel></rss>