<?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[rekursive Methode in einer C++ Klasse]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>bin gerade dabei einen XML Parser zu schreiben, der mir die Werte in einen binären Baum hängt. Zu diesem Zweck möcht ich die Methode, in der ich den Baum<br />
befülle, rekursiv aufrufen. Woran ich leider nicht ganz gedacht habe, ist das ja jede Instanz einer Klasse ihren eigenen Speicherbereich hat und wenn ich nun eine Methode von dieser Klasse mehrmals aufrufe, die Methode ja keine neue Instanz wird.</p>
<p>Gibts da irgendeinen Trick wie man sowas sauber hinbekommt?</p>
<p>lg. Joe</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/176987/rekursive-methode-in-einer-c-klasse</link><generator>RSS for Node</generator><lastBuildDate>Sat, 19 Sep 2026 18:30:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/176987.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 27 Mar 2007 07:12:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to rekursive Methode in einer C++ Klasse on Tue, 27 Mar 2007 07:12:38 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>bin gerade dabei einen XML Parser zu schreiben, der mir die Werte in einen binären Baum hängt. Zu diesem Zweck möcht ich die Methode, in der ich den Baum<br />
befülle, rekursiv aufrufen. Woran ich leider nicht ganz gedacht habe, ist das ja jede Instanz einer Klasse ihren eigenen Speicherbereich hat und wenn ich nun eine Methode von dieser Klasse mehrmals aufrufe, die Methode ja keine neue Instanz wird.</p>
<p>Gibts da irgendeinen Trick wie man sowas sauber hinbekommt?</p>
<p>lg. Joe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1253516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1253516</guid><dc:creator><![CDATA[Joe80]]></dc:creator><pubDate>Tue, 27 Mar 2007 07:12:38 GMT</pubDate></item><item><title><![CDATA[Reply to rekursive Methode in einer C++ Klasse on Tue, 27 Mar 2007 07:25:32 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Die Frage ist doch eher ob du wirklich fü jeden Rekursionsdurchgang eine neue Instanz brauchst?<br />
Wenn du wirklich jeweils eine neue Instanz brauchst, must du eben manuell eine solche Anlegen</p>
<pre><code class="language-cpp">MyCLass::Recursive()
{
  for (...)
  {
    MyClass sub;
    sub.Recursive();
  }
}
</code></pre>
<p>Wenn du die Instanzen auch nach Recursive() brauchst must diese in einen externen Container zwischenlagern und/oder mit dynamischer Speicherreservierung arbeiten.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1253522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1253522</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Tue, 27 Mar 2007 07:25:32 GMT</pubDate></item><item><title><![CDATA[Reply to rekursive Methode in einer C++ Klasse on Tue, 27 Mar 2007 07:26:14 GMT]]></title><description><![CDATA[<p>Joe80 schrieb:</p>
<blockquote>
<p>...die Methode ja keine neue Instanz wird. ...</p>
</blockquote>
<p>Entweder habe ich da etwas im Kern noch nicht verstanden (was ich nicht ausschliießen möchte) oder Du hast Dich nicht klar ausgedrückt oder Du hast da noch einen Denkfehler.<br />
Ich wüsste auch nicht, wo das Problem beim gleichzeitigen Einsatz von OO und Rekursion wäre...</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1253523</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1253523</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 27 Mar 2007 07:26:14 GMT</pubDate></item><item><title><![CDATA[Reply to rekursive Methode in einer C++ Klasse on Tue, 27 Mar 2007 07:39:26 GMT]]></title><description><![CDATA[<p>ja ich bin mir auch nicht ganz sicher ob ich nicht einen Denkfehler hab <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>
<p>also es ist so:</p>
<pre><code class="language-cpp">MyClass::MyClass()
{
 Node *btree = new Node();
}
MyCLass::createTree()
{
  //Variablen der Methode
  bool status;

  if(...)
  {
    createTree();
  }
}
</code></pre>
<p>meine Frage zielt eigentlich darauf ab, ob das richtig ist, das wenn ich die Methode createTree() rekursiv aufrufe, das dann die Variablen in der Methode neu im Speicher erstellt werden, oder ob die schon vorhandenen überschrieben werden?</p>
<p>Ich hoff jetzt wars bissal besser erklärt!?</p>
<p>thx. Joe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1253533</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1253533</guid><dc:creator><![CDATA[Joe80]]></dc:creator><pubDate>Tue, 27 Mar 2007 07:39:26 GMT</pubDate></item><item><title><![CDATA[Reply to rekursive Methode in einer C++ Klasse on Tue, 27 Mar 2007 07:42:40 GMT]]></title><description><![CDATA[<p>sie werden natürlich neu erstellt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1253538</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1253538</guid><dc:creator><![CDATA[dEUs]]></dc:creator><pubDate>Tue, 27 Mar 2007 07:42:40 GMT</pubDate></item><item><title><![CDATA[Reply to rekursive Methode in einer C++ Klasse on Tue, 27 Mar 2007 07:44:43 GMT]]></title><description><![CDATA[<p>na das ist eine gute nachricht, denn beim Debuggen meiner Methode hatte ich den Eindruck, das meine Mehthoden-Variablen nur überschrieben werden, und das führt zu totalem Chaos *g*</p>
<p>lg. Joe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1253542</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1253542</guid><dc:creator><![CDATA[Joe80]]></dc:creator><pubDate>Tue, 27 Mar 2007 07:44:43 GMT</pubDate></item><item><title><![CDATA[Reply to rekursive Methode in einer C++ Klasse on Wed, 28 Mar 2007 07:37:07 GMT]]></title><description><![CDATA[<p>BTW:<br />
Wenn du unter Windows mit VS arbeitest solltest du auf jeden Fall die Stack-Size maximieren, wenn du mit rekursiven Funtkionen hantierst. Denn alle Variablen werden dort abgelegt und es kann relativ schnell zum stack-overflow kommen (nicht immer leicht zu debuggen). Wir haben das Problem bei rekursiven Füllalgorithmen bei Geometrien...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254313</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254313</guid><dc:creator><![CDATA[muffmolch]]></dc:creator><pubDate>Wed, 28 Mar 2007 07:37:07 GMT</pubDate></item><item><title><![CDATA[Reply to rekursive Methode in einer C++ Klasse on Wed, 28 Mar 2007 08:05:55 GMT]]></title><description><![CDATA[<p>danke für den Tipp, und wie mach ich das beim VS 2003?</p>
<p>Weil wir grad beim Thema sind, wie find ich raus was Memory Leaks verursacht?<br />
Kann das dadurch ausgelöst werden, wenn ich eine verkettete Lista habe und diese nicht vor dem Programmende komplett freigebe?</p>
<p>lg. Joe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254338</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254338</guid><dc:creator><![CDATA[Joe80]]></dc:creator><pubDate>Wed, 28 Mar 2007 08:05:55 GMT</pubDate></item><item><title><![CDATA[Reply to rekursive Methode in einer C++ Klasse on Wed, 28 Mar 2007 08:10:25 GMT]]></title><description><![CDATA[<p>Joe80 schrieb:</p>
<blockquote>
<p>Weil wir grad beim Thema sind, wie find ich raus was Memory Leaks verursacht?<br />
Kann das dadurch ausgelöst werden, wenn ich eine verkettete Lista habe und diese nicht vor dem Programmende komplett freigebe?</p>
</blockquote>
<p>Im einfachsten Fall durch ein <code>#define new DEBUG_NEW</code> am Anfang des Programms (das TRACE't dir am Programmende alle nicht freigegebenen Speicherblöcke zusammen mit der Zeile, in der sie reserviert wurden. Für genauere Analysen gibt es komplexere Leak-Detektoren.</p>
<p>Und ja, diese Liste könnte das Problem sein - spendier ihr mal einen Destruktor, der die letzten verbleibenden Listenelemente aufräumt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254347</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254347</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 28 Mar 2007 08:10:25 GMT</pubDate></item><item><title><![CDATA[Reply to rekursive Methode in einer C++ Klasse on Wed, 28 Mar 2007 08:29:08 GMT]]></title><description><![CDATA[<p>hmm, also ich bin bisher immer davon ausgegangen, das mir der Standard Destructor von der Klasse, aus der die einezelenen Listen Knoten bestehen den Speicher von selber freigibt. Ist das ein Irrglaube meinerseits?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254371</guid><dc:creator><![CDATA[Joe80]]></dc:creator><pubDate>Wed, 28 Mar 2007 08:29:08 GMT</pubDate></item><item><title><![CDATA[Reply to rekursive Methode in einer C++ Klasse on Wed, 28 Mar 2007 08:32:18 GMT]]></title><description><![CDATA[<p>Hast Du irgendwo selbst &quot;new&quot; benutzt? Dann musst Du auch selbst &quot;delete&quot; benutzen (es seidenn Du verwendest Smartpointer). Eigentlich ganz einfach <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/1254376</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254376</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 28 Mar 2007 08:32:18 GMT</pubDate></item><item><title><![CDATA[Reply to rekursive Methode in einer C++ Klasse on Wed, 28 Mar 2007 08:43:03 GMT]]></title><description><![CDATA[<p>ja war fleißig mit dem &quot;new&quot; verwenden *g*</p>
<p>ok, was sind bitte &quot;smartpointer&quot; ist das was unanständiges?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254387</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254387</guid><dc:creator><![CDATA[Joe80]]></dc:creator><pubDate>Wed, 28 Mar 2007 08:43:03 GMT</pubDate></item><item><title><![CDATA[Reply to rekursive Methode in einer C++ Klasse on Wed, 28 Mar 2007 08:50:30 GMT]]></title><description><![CDATA[<p>Smartpointer sind Gebilde, die einen Zeiger verwalten, und sie automatisch zu einem adäquaten Zeitpunkt freigeben. Dieser Zeitpunkt könnte z.B. die Destruktion eines Objekts sein. Der Smartpointer selbst darf dafür natürlich nicht mit new angelegt worden sein <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>
<p>Gibt im Magazin einen schönen Artikel über den Smartpointer der Standardbibliothek und die von Boost, schau Dir den mal an!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254398</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254398</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 28 Mar 2007 08:50:30 GMT</pubDate></item><item><title><![CDATA[Reply to rekursive Methode in einer C++ Klasse on Wed, 28 Mar 2007 08:51:20 GMT]]></title><description><![CDATA[<p>ok, werd ich mir gelich mal einverleiben <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>
<p>thx. Joe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254400</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254400</guid><dc:creator><![CDATA[Joe80]]></dc:creator><pubDate>Wed, 28 Mar 2007 08:51:20 GMT</pubDate></item></channel></rss>