<?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[Mehrmaliges Instanziieren führt zur Zerstörung ????]]></title><description><![CDATA[<p>Hey Leute ich bin hier grade auf eine merkwürdige Tatsache gestoßen ...<br />
Ist dem wirklich so .</p>
<pre><code class="language-cpp">void main (int argc, char *argv[]) {
string name=&quot;Axel Doering&quot;;
for (int i=0; i&lt;10; i++){
Student bmt(name, i);
bmt.printName ();
}
bmt.printName ();
}
</code></pre>
<p>wenn i &gt; 0 wird das Objekt zerstört .. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/268393/mehrmaliges-instanziieren-führt-zur-zerstörung</link><generator>RSS for Node</generator><lastBuildDate>Tue, 01 Sep 2026 21:04:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/268393.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 08 Jun 2010 16:06:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Mehrmaliges Instanziieren führt zur Zerstörung ???? on Tue, 08 Jun 2010 16:06:03 GMT]]></title><description><![CDATA[<p>Hey Leute ich bin hier grade auf eine merkwürdige Tatsache gestoßen ...<br />
Ist dem wirklich so .</p>
<pre><code class="language-cpp">void main (int argc, char *argv[]) {
string name=&quot;Axel Doering&quot;;
for (int i=0; i&lt;10; i++){
Student bmt(name, i);
bmt.printName ();
}
bmt.printName ();
}
</code></pre>
<p>wenn i &gt; 0 wird das Objekt zerstört .. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1908997</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1908997</guid><dc:creator><![CDATA[Bacid90210]]></dc:creator><pubDate>Tue, 08 Jun 2010 16:06:03 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrmaliges Instanziieren führt zur Zerstörung ???? on Tue, 08 Jun 2010 16:10:57 GMT]]></title><description><![CDATA[<p>bmt lebt nur innerhalb der Schleife. Beim Aufruf von printNase außerhalb der Schleife ist bmt nicht mehr da <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909003</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909003</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Tue, 08 Jun 2010 16:10:57 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrmaliges Instanziieren führt zur Zerstörung ???? on Tue, 08 Jun 2010 16:13:01 GMT]]></title><description><![CDATA[<p>Bacid90210 schrieb:</p>
<blockquote>
<p>Hey Leute ich bin hier grade auf eine merkwürdige Tatsache gestoßen ...<br />
Ist dem wirklich so .</p>
</blockquote>
<p>Kompiliert der Code bei dir? Welchen Compiler benutzt du?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909007</guid><dc:creator><![CDATA[Nukularfüsiker]]></dc:creator><pubDate>Tue, 08 Jun 2010 16:13:01 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrmaliges Instanziieren führt zur Zerstörung ???? on Tue, 08 Jun 2010 16:13:53 GMT]]></title><description><![CDATA[<p>Out of Scope .. das war mir klar .</p>
<p>Aber wiso hat unser Prof da sowas stehen wie wenn i &gt; 0 --&gt; Instanz wird zerstört</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909008</guid><dc:creator><![CDATA[Bacid90210]]></dc:creator><pubDate>Tue, 08 Jun 2010 16:13:53 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrmaliges Instanziieren führt zur Zerstörung ???? on Tue, 08 Jun 2010 16:15:35 GMT]]></title><description><![CDATA[<p>Ich benutze den/die GCC ..<br />
Hab das ganze aber jetzt nicht implementiert ..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909010</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909010</guid><dc:creator><![CDATA[Bacid90210]]></dc:creator><pubDate>Tue, 08 Jun 2010 16:15:35 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrmaliges Instanziieren führt zur Zerstörung ???? on Tue, 08 Jun 2010 16:23:21 GMT]]></title><description><![CDATA[<p>Bacid90210 schrieb:</p>
<blockquote>
<p>Out of Scope .. das war mir klar .</p>
<p>Aber wiso hat unser Prof da sowas stehen wie wenn i &gt; 0 --&gt; Instanz wird zerstört</p>
</blockquote>
<p>Mehr Kontext bitte, die Aussage macht so keinen Sinn.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909018</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909018</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 08 Jun 2010 16:23:21 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrmaliges Instanziieren führt zur Zerstörung ???? on Tue, 08 Jun 2010 16:24:01 GMT]]></title><description><![CDATA[<p>Woher sollen wir das wissen?<br />
Ich kenn keine Klasse <code>Stundent</code> . Und ich kenn auch Deinen Prof nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909021</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909021</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Tue, 08 Jun 2010 16:24:01 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrmaliges Instanziieren führt zur Zerstörung ???? on Tue, 08 Jun 2010 16:33:11 GMT]]></title><description><![CDATA[<p>Also ...<br />
Es geht um die Zerstörung von Objekten ..</p>
<pre><code class="language-cpp">void main (int argc, char *argv[]) {
string name=&quot;Axel Doering&quot;;
for (int i=0; i&lt;10; i++){ // Erzeugen i+1. Instanz
//(i&gt;0 : Zerstören i. Instanz)
Student bmt(name, i);
bmt.printName ();
}
bmt.printName ();
}
</code></pre>
<p>Das hier ist die Klasse Student</p>
<pre><code class="language-cpp">class Student {
//…
float avgGrade;
char* name;
long matrikelNr;
//…
void printName ();
};
void Student::printName() {
cout &lt;&lt; name &lt;&lt; endl;
}
</code></pre>
<p>Mit folgendem Konstruktor</p>
<pre><code class="language-cpp">Student:: Student (char *sname, long smatrikel){
name = new char[strlen(sname)+1];
matrikelNr = smatrikel;
strcpy (name, sname);
}
</code></pre>
<p>Und dem Destruktor der so aussieht ..</p>
<pre><code class="language-cpp">Student:: ~Student (){
delete [] name;
}
</code></pre>
<p>In seinem Script nimmt er an das beim mehrmaligen Instanziieren der gleichen Instanz ... das Objekt zerstört wird ..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909030</guid><dc:creator><![CDATA[Bacid90210]]></dc:creator><pubDate>Tue, 08 Jun 2010 16:33:11 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrmaliges Instanziieren führt zur Zerstörung ???? on Tue, 08 Jun 2010 16:40:46 GMT]]></title><description><![CDATA[<p>Das hast du falsch verstanden. Schließlich steht da, dass die alte Instanz zerstört wird. Und dies geschieht übrigens nicht dadurch, dass eine neue Instanz angelegt wird, sondern dadurch, dass nach jedem Schleifendurchlauf der Scope der Schleife verlassen wird. Bei jedem Durchlauf ist alles was vorher war vergessen.</p>
<p>Ich mache mal eine kurze Demo und editiere die hier gleich rein.</p>
<p>Da:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class foo{
private:
  int i;
public:
  foo(int i):i(i) {cout&lt;&lt;&quot;Objekt mit Parameter &quot;&lt;&lt;i&lt;&lt;&quot; erzeugt&quot;&lt;&lt;endl;}
  ~foo() {cout&lt;&lt;&quot;Objekt mit Parameter &quot;&lt;&lt;i&lt;&lt;&quot; zerstört&quot;&lt;&lt;endl;}
};

int main()
{
  for(int i=0; i&lt;10; ++i)
    {
      cout&lt;&lt;&quot;Schleife hat gerade begonnen.&quot;&lt;&lt;endl;
      foo bar(i); 
      cout&lt;&lt;&quot;Schleife endet nach dieser Ausgabe.&quot;&lt;&lt;endl;
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1909031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909031</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 08 Jun 2010 16:40:46 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrmaliges Instanziieren führt zur Zerstörung ???? on Tue, 08 Jun 2010 16:36:36 GMT]]></title><description><![CDATA[<p>Bacid90210 schrieb:</p>
<blockquote>
<p>In seinem Script nimmt er an das beim mehrmaligen Instanziieren der gleichen Instanz ... das Objekt zerstört wird ..</p>
</blockquote>
<p>Lies mal vor.. glaub ich nicht, dass das da steht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909032</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909032</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Tue, 08 Jun 2010 16:36:36 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrmaliges Instanziieren führt zur Zerstörung ???? on Tue, 08 Jun 2010 16:38:57 GMT]]></title><description><![CDATA[<p>Er könnte eventuell gemeint haben, dass bei allen Schleifendurchläufen außer beim ersten das alte bmt-Objekt aus dem vorangegangenem Durchlauf zerstört wird.<br />
Streng genommen wird es aber schon am Ende des jeweiligen Schleifendurchlaufs (auch des ersten) zerstört.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909034</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909034</guid><dc:creator><![CDATA[ipsec]]></dc:creator><pubDate>Tue, 08 Jun 2010 16:38:57 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrmaliges Instanziieren führt zur Zerstörung ???? on Tue, 08 Jun 2010 16:39:21 GMT]]></title><description><![CDATA[<p>// Erzeugen i+1. Instanz<br />
//(i&gt;0 : Zerstören i. Instanz)</p>
<p>Ok kann gut sein das ich das falsch verstanden habe ...</p>
<p>Aber</p>
<pre><code class="language-cpp">(i&gt;0 . Zerstören der instanz )
</code></pre>
<p>klingt verdächtig danach ..</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909035</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909035</guid><dc:creator><![CDATA[Bacid90210]]></dc:creator><pubDate>Tue, 08 Jun 2010 16:39:21 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrmaliges Instanziieren führt zur Zerstörung ???? on Tue, 08 Jun 2010 16:41:45 GMT]]></title><description><![CDATA[<p>So viele Antworten in so kurzer Zeit? Dann mache ich nochmal hier auf meine reineditierte Demo auf der vorhergehenden Seite aufmerksam.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909039</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909039</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 08 Jun 2010 16:41:45 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrmaliges Instanziieren führt zur Zerstörung ???? on Tue, 08 Jun 2010 16:42:20 GMT]]></title><description><![CDATA[<p>Das ist irgendwie .. arg wirr.<br />
Dein Konstruktor nimmt einen char* als namen (ein const char* wäre hier angebrachter), du übergibst aber in der Schleife einen std::string. Das geht nicht.<br />
Und natürlich werden die Objekte, die in der Schleife angelegt werden, nach jedem Schleifendurchlauf wieder zerstört, beim nächsten Eintritt in den Schleifenrumpf wird wieder ein neues Objekt angelegt, welches am Ende wieder zerstört wird, usw. Aber die Aussage &quot;bei i &gt; 0 wird das i. Objekt zerstört&quot; ist irgendwo krampf. Es gibt kein ites Objekt, sondern immer nur eines. Und klar, wenn ich nie in den Schleifenkörper reinkomm, wird auch nie ein Objekt angelegt, und damit auch nie eines zerstört.<br />
Sehr mysteriöser Kurs... Wo findet der statt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909040</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909040</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Tue, 08 Jun 2010 16:42:20 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrmaliges Instanziieren führt zur Zerstörung ???? on Tue, 08 Jun 2010 16:45:48 GMT]]></title><description><![CDATA[<p>Vieleicht verstehe ich auch irgendwas falsch an seinen Ausführungen ...<br />
Ich schreib ihm mal eine Mail ..</p>
<p>Halte euch auf dem laufenden...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909042</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909042</guid><dc:creator><![CDATA[Bacid90210]]></dc:creator><pubDate>Tue, 08 Jun 2010 16:45:48 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrmaliges Instanziieren führt zur Zerstörung ???? on Tue, 08 Jun 2010 16:48:12 GMT]]></title><description><![CDATA[<p>Niemand der auf void main hinweist? Bemerkenswert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909043</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 08 Jun 2010 16:48:12 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrmaliges Instanziieren führt zur Zerstörung ???? on Tue, 08 Jun 2010 16:51:18 GMT]]></title><description><![CDATA[<p>Bacid90210 schrieb:</p>
<blockquote>
<p>Vieleicht verstehe ich auch irgendwas falsch an seinen Ausführungen ...<br />
Ich schreib ihm mal eine Mail ..</p>
<p>Halte euch auf dem laufenden...</p>
</blockquote>
<p>Ich kann dir erklären wie das gemeint ist. Da steht: &quot;Erzeugen i+1. Instanz. (i&gt;0 : Zerstören i. Instanz).&quot;</p>
<p>- Bei i=0 wird das i+1 = 1te Objekt angelegt. Es wird kein Objekt zerstört, weil noch keins da war.<br />
- Bei i=1 wird das i+1 = 2te Objekt angelegt. Es wird vorher das i = 1te Objekt aus dem vorherigen Durchlauf zerstört.<br />
- Dies wiederholt sich für alle folgenden Durchläufe.</p>
<p>Es wird also in allen Fällen wo i&gt;0 ist das vorhergehende Objekt zerstört, nur für i=0 nicht, weil noch keines da war.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909045</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909045</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 08 Jun 2010 16:51:18 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrmaliges Instanziieren führt zur Zerstörung ???? on Tue, 08 Jun 2010 16:59:11 GMT]]></title><description><![CDATA[<p>Alle Variablen sind nur innerhalb ihres Namensraumes verfuegbar. Mittels { } legst du einen unbenannten Namensraum an. Wird er verlassen, so werden alle lokal in diesem Namensraum erstellen Variablen abgebaut. bmt ist solch ein Objekt. Die Schleife sorgt nur dafuer, dass der Bereich immer wieder betreten wird. Lass die Zeile mit for weg und du siehst es vielleicht deutlicher. Dort wird einmalig bmt angelegt und am Ende einmalig abgebaut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909051</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Tue, 08 Jun 2010 16:59:11 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrmaliges Instanziieren führt zur Zerstörung ???? on Tue, 08 Jun 2010 17:01:11 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Bacid90210 schrieb:</p>
<blockquote>
<p>Vieleicht verstehe ich auch irgendwas falsch an seinen Ausführungen ...<br />
Ich schreib ihm mal eine Mail ..</p>
<p>Halte euch auf dem laufenden...</p>
</blockquote>
<p>Ich kann dir erklären wie das gemeint ist. Da steht: &quot;Erzeugen i+1. Instanz. (i&gt;0 : Zerstören i. Instanz).&quot;</p>
<p>- Bei i=0 wird das i+1 = 1te Objekt angelegt. Es wird kein Objekt zerstört, weil noch keins da war.<br />
- Bei i=1 wird das i+1 = 2te Objekt angelegt. Es wird vorher das i = 1te Objekt aus dem vorherigen Durchlauf zerstört.<br />
- Dies wiederholt sich für alle folgenden Durchläufe.</p>
<p>Es wird also in allen Fällen wo i&gt;0 ist das vorhergehende Objekt zerstört, nur für i=0 nicht, weil noch keines da war.</p>
</blockquote>
<p>Das ist allerdings missverständlich. Erstens ist es trivial, dass keine Zerstörung stattfindet, wenn kein Objekt existiert. Zweitens indiziert die Platzierung des Kommentars, dass die Zerstörung des vorigen Objektes dort stattfindet und gerade deshalb, weil ein neues Objekt erstellt werden soll. Nimmt man das an, macht der auf die Schleife folgende Ausdruck auch geringfügig Sinn.<br />
Es trifft aber beides nicht zu.<br />
Es wird in jedem Schleifendurchlauf, also auch bei i=0, das jeweilige bmt beim Verlassen des Blocks zerstört.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909052</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909052</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 08 Jun 2010 17:01:11 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrmaliges Instanziieren führt zur Zerstörung ???? on Wed, 09 Jun 2010 06:06:53 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">void main (int argc, char *argv[]) {
string name=&quot;Axel Doering&quot;;
for (int i=0; i&lt;10; i++){
Student bmt(name, i);
bmt.printName ();
}
bmt.printName (); // &lt;-- Compilerfehler
}
</code></pre>
<p>Nukularfüsiker schrieb:</p>
<blockquote>
<p>Kompiliert der Code bei dir? Welchen Compiler benutzt du?</p>
</blockquote>
<p>Wieso 'diskutiert' ihr hier so lange?<br />
Mehr Kommentar als dem von Nukularfüsiker bedarf es hier ja wohl nicht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909270</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 09 Jun 2010 06:06:53 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrmaliges Instanziieren führt zur Zerstörung ???? on Wed, 09 Jun 2010 07:21:55 GMT]]></title><description><![CDATA[<p>CSpille schrieb:</p>
<blockquote>
<p>Wieso 'diskutiert' ihr hier so lange?<br />
Mehr Kommentar als dem von Nukularfüsiker bedarf es hier ja wohl nicht...</p>
</blockquote>
<p>Weil es hier absolut nicht um eventuelle Fehler im Programm geht. Lies doch mal die Frage des Threaderstellers.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909289</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909289</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 09 Jun 2010 07:21:55 GMT</pubDate></item></channel></rss>