<?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[Destruktor von DynamicArray&amp;lt;type&amp;gt;]]></title><description><![CDATA[<p>Wie sieht denn der Desruktor bei DynamicArrays aus?</p>
<pre><code class="language-cpp">class CKnoten
{
   public:
      CKnoten *Parent;
      DynamicArray&lt;CKnoten*&gt; Children;

      CKnoten()
       {
          Children.Length = 0;
       };

      ~CKnoten()
       {
???????
       };
      Insert(CKnoten *Knoten)
       {
          Children.Length += 1;
          Children[Children.High] = Knoten;
       };
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/170874/destruktor-von-dynamicarray-lt-type-gt</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 04:37:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/170874.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 20 Jan 2007 14:52:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Destruktor von DynamicArray&amp;lt;type&amp;gt; on Sat, 20 Jan 2007 14:52:15 GMT]]></title><description><![CDATA[<p>Wie sieht denn der Desruktor bei DynamicArrays aus?</p>
<pre><code class="language-cpp">class CKnoten
{
   public:
      CKnoten *Parent;
      DynamicArray&lt;CKnoten*&gt; Children;

      CKnoten()
       {
          Children.Length = 0;
       };

      ~CKnoten()
       {
???????
       };
      Insert(CKnoten *Knoten)
       {
          Children.Length += 1;
          Children[Children.High] = Knoten;
       };
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1213206</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1213206</guid><dc:creator><![CDATA[t.jay03]]></dc:creator><pubDate>Sat, 20 Jan 2007 14:52:15 GMT</pubDate></item><item><title><![CDATA[Reply to Destruktor von DynamicArray&amp;lt;type&amp;gt; on Sat, 20 Jan 2007 19:02:13 GMT]]></title><description><![CDATA[<p>RTFM <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="😃"
    /> da steht:</p>
<p>Don’t call the dynamic array destructor. To free a dynamically allocated DynamicArray, assign it a Length of zero.</p>
<pre><code class="language-cpp">~CKnoten() 
{ 
    Children.Length = 0;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1213352</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1213352</guid><dc:creator><![CDATA[Christian Sonder]]></dc:creator><pubDate>Sat, 20 Jan 2007 19:02:13 GMT</pubDate></item><item><title><![CDATA[Reply to Destruktor von DynamicArray&amp;lt;type&amp;gt; on Sat, 20 Jan 2007 19:06:43 GMT]]></title><description><![CDATA[<p>... und (das hätt ich fast vergessen) Du solltest natürlich die einzelnen Elemente vorher löschen:</p>
<pre><code class="language-cpp">for(int loop=0; loop&lt;Children-&gt;Length; ++loop)
    delete Children[loop];
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1213361</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1213361</guid><dc:creator><![CDATA[Christian Sonder]]></dc:creator><pubDate>Sat, 20 Jan 2007 19:06:43 GMT</pubDate></item><item><title><![CDATA[Reply to Destruktor von DynamicArray&amp;lt;type&amp;gt; on Sat, 20 Jan 2007 20:12:44 GMT]]></title><description><![CDATA[<p>Christian Sonder schrieb:</p>
<blockquote>
<p>Don’t call the dynamic array destructor. To free a dynamically allocated DynamicArray, assign it a Length of zero.</p>
</blockquote>
<p>Das DynamicArray wurde hier aber nicht dynamisch, sondern auf dem Stack alloziert. Es sollte daher reichen, die einzelnen Einträge mittels delete zu löschen. Da DynamicArray ein Stackobjekt ist, wird es automatisch destruiert und der von ihm belegte Speicherplatz freigegeben.</p>
<p>Ein paar Anmerkungen zum Code:<br />
- warum DynamicArray, wenn es std::vector gibt und du damit compilerunabhängig bist?<br />
- Wenn du Parent und Children als public deklarierst, sagst du jedem Benutzer der Klasse &quot;mach mit diesem Objekten, was du willst&quot;. (Zumindest wird sich unter den Benutzern, du selbst nicht ausgeschlossen, bald jemand finden, der sich dann so angesprochen fühlt. Oft reicht es sogar, sich zu vertippen, um die Klasse zu fehlerhaftem Verhalten zu bringen.)<br />
- Generell wäre es sinnvoll, nicht Zeiger, sondern Referenzen auf CKnoten zu übernehmen. Einer der vielen Gründe dafür ist, daß für Zeiger auch NULL übergeben werden kann und du als Entwickler diesen Fall berücksichtigen solltest.<br />
- wie und mit welcher Lektüre hast du C++ gelernt? Zufällig mit Visual C++ und MFC?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1213398</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1213398</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Sat, 20 Jan 2007 20:12:44 GMT</pubDate></item><item><title><![CDATA[Reply to Destruktor von DynamicArray&amp;lt;type&amp;gt; on Sat, 20 Jan 2007 21:59:05 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/8276">@audacia</a>:<br />
stimmt, da war ich wohl zu blöd zum lesen <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/1213454</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1213454</guid><dc:creator><![CDATA[Christian Sonder]]></dc:creator><pubDate>Sat, 20 Jan 2007 21:59:05 GMT</pubDate></item><item><title><![CDATA[Reply to Destruktor von DynamicArray&amp;lt;type&amp;gt; on Tue, 23 Jan 2007 15:37:52 GMT]]></title><description><![CDATA[<p>Ich danke erstmal für die Antworten!</p>
<p>C++ gelernt habe ich mit Borland C++ Builder.<br />
std::vector habe ich noch nie gehört ... was ist das?</p>
<p>Ich mache erstmal wenn ich was programmiere alles public. Wenn ich dann fertig bin rationalisiere ich alles weg was nicht öffendlich sein muss.</p>
<p>&quot;nicht Zeiger, sondern Referenzen&quot; - wie würde das konkret im Beispiel aussehen?</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1215340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1215340</guid><dc:creator><![CDATA[t.jay03]]></dc:creator><pubDate>Tue, 23 Jan 2007 15:37:52 GMT</pubDate></item><item><title><![CDATA[Reply to Destruktor von DynamicArray&amp;lt;type&amp;gt; on Tue, 23 Jan 2007 16:02:11 GMT]]></title><description><![CDATA[<p>t.jay03 schrieb:</p>
<blockquote>
<p>std::vector habe ich noch nie gehört ... was ist das?</p>
</blockquote>
<p>Der Container vector gehört zum C++Standard.<br />
Lies mal diesen Beitrag aus dem Magazin.<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-143816.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-143816.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1215362</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1215362</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 23 Jan 2007 16:02:11 GMT</pubDate></item><item><title><![CDATA[Reply to Destruktor von DynamicArray&amp;lt;type&amp;gt; on Tue, 23 Jan 2007 18:26:23 GMT]]></title><description><![CDATA[<p>t.jay03 schrieb:</p>
<blockquote>
<p>Ich mache erstmal wenn ich was programmiere alles public. Wenn ich dann fertig bin rationalisiere ich alles weg was nicht öffendlich sein muss.</p>
</blockquote>
<p>Wenn du meinst. Generell ist es empfehlenswert, zunächst die Schnittstelle zu definieren und dann Implementationsdetails zu klären, das sorgt für eine größere Konsistenz und mehr Übersicht bei der Planung, da du dir zunächst überlegen mußt, was deine Klasse alles können und wie das zu benutzen sein soll.</p>
<p>t.jay03 schrieb:</p>
<blockquote>
<p>&quot;nicht Zeiger, sondern Referenzen&quot; - wie würde das konkret im Beispiel aussehen?</p>
</blockquote>
<p>Z.B. so:</p>
<pre><code class="language-cpp">// .hpp-Datei

#ifndef _MYNODE_HPP
#define _MYNODE_HPP
#include &lt;vector&gt;

class MyNode
{
public:
    MyNode (void);
    MyNode (const MyNode&amp; parent);
    ~MyNode (void);

    void insertNode (const MyNode&amp; node);
    ...

private:
    MyNode* parentNode;
    std::vector &lt;MyNode*&gt; childNodes;
    ...
};

#endif // _MYNODE_HPP

// .cpp-Datei

void MyNode::insertNode (const MyNode&amp; node)
{ childNodes.push_back (&amp;node); }

...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1215460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1215460</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Tue, 23 Jan 2007 18:26:23 GMT</pubDate></item><item><title><![CDATA[Reply to Destruktor von DynamicArray&amp;lt;type&amp;gt; on Wed, 24 Jan 2007 15:17:01 GMT]]></title><description><![CDATA[<p>audacia schrieb:</p>
<blockquote>
<p>Wenn du meinst. Generell ist es empfehlenswert, zunächst die Schnittstelle zu definieren und dann Implementationsdetails zu klären, das sorgt für eine größere Konsistenz und mehr Übersicht bei der Planung, da du dir zunächst überlegen mußt, was deine Klasse alles können und wie das zu benutzen sein soll.</p>
</blockquote>
<p>sehe ich ein! Versuche mich daran zu halten!</p>
<p>&amp; Danke fürs Beispiel <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/1216094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1216094</guid><dc:creator><![CDATA[T.Jay03]]></dc:creator><pubDate>Wed, 24 Jan 2007 15:17:01 GMT</pubDate></item></channel></rss>