<?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[Objekt in for-Schleife; Wann wird der Konstruktor aufgerufen?]]></title><description><![CDATA[<p>Hallo zusammen!</p>
<p>...folgender (Pseudo-)Code:</p>
<pre><code class="language-cpp">for(int i = 0; i &lt; ANZAHL; i++)
{
   string str;
   str.assign(...);
}
</code></pre>
<p>Wird nun das Objekt (str) bei jedem Durchgang neu erstellt ? Wenn ja, würde doch der Konstruktor bei jedem Schleifeneingang aufgerufen und bei jedem Schleifenausgang der Destruktor, oder?!</p>
<p>DAnke schonmAl!!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <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/topic/182211/objekt-in-for-schleife-wann-wird-der-konstruktor-aufgerufen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 16:26:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/182211.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 22 May 2007 16:58:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Objekt in for-Schleife; Wann wird der Konstruktor aufgerufen? on Tue, 22 May 2007 16:58:18 GMT]]></title><description><![CDATA[<p>Hallo zusammen!</p>
<p>...folgender (Pseudo-)Code:</p>
<pre><code class="language-cpp">for(int i = 0; i &lt; ANZAHL; i++)
{
   string str;
   str.assign(...);
}
</code></pre>
<p>Wird nun das Objekt (str) bei jedem Durchgang neu erstellt ? Wenn ja, würde doch der Konstruktor bei jedem Schleifeneingang aufgerufen und bei jedem Schleifenausgang der Destruktor, oder?!</p>
<p>DAnke schonmAl!!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <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/1290050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290050</guid><dc:creator><![CDATA[NeedSomeInfo]]></dc:creator><pubDate>Tue, 22 May 2007 16:58:18 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt in for-Schleife; Wann wird der Konstruktor aufgerufen? on Tue, 22 May 2007 17:01:33 GMT]]></title><description><![CDATA[<p>NeedSomeInfo schrieb:</p>
<blockquote>
<p>Wird nun das Objekt (str) bei jedem Durchgang neu erstellt ?</p>
</blockquote>
<p>jo .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1290051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290051</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 22 May 2007 17:01:33 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt in for-Schleife; Wann wird der Konstruktor aufgerufen? on Tue, 22 May 2007 17:05:02 GMT]]></title><description><![CDATA[<p>Super danke; das heißt ein break bzw continue in der Schleife hätte direkt den (autom.) Aufruf des Destruktors zu Folge, richtig ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1290053</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290053</guid><dc:creator><![CDATA[NeedSomeInfo]]></dc:creator><pubDate>Tue, 22 May 2007 17:05:02 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt in for-Schleife; Wann wird der Konstruktor aufgerufen? on Tue, 22 May 2007 17:09:26 GMT]]></title><description><![CDATA[<p>ach, sry noch ne Frage:<br />
kann ich damit einen neuen Block/Scope erstellen:</p>
<pre><code class="language-cpp">{
   string str;
   // str gibt es nur innerhalb der Klammern ?!
}
</code></pre>
<p>Also die Klammern stehen einfach 'so' da; keine Funktion, kein if...; geht das ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1290055</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290055</guid><dc:creator><![CDATA[NeedSomeInfo]]></dc:creator><pubDate>Tue, 22 May 2007 17:09:26 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt in for-Schleife; Wann wird der Konstruktor aufgerufen? on Tue, 22 May 2007 17:11:33 GMT]]></title><description><![CDATA[<p>der destruktor wird immer aufgerufen wenn das objekt seinen gueltigkeitsbereich verlaesst - sobald der schleifenkopf neu abgefragt wird ist er ausserhalb des blockes und dadurch entsprechend einen destrukt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1290057</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290057</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Tue, 22 May 2007 17:11:33 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt in for-Schleife; Wann wird der Konstruktor aufgerufen? on Tue, 22 May 2007 17:14:23 GMT]]></title><description><![CDATA[<p>Ja klar und bei der letzten Frage ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1290059</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290059</guid><dc:creator><![CDATA[NeedSomeInfo]]></dc:creator><pubDate>Tue, 22 May 2007 17:14:23 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt in for-Schleife; Wann wird der Konstruktor aufgerufen? on Tue, 22 May 2007 17:15:36 GMT]]></title><description><![CDATA[<p>NeedSomeInfo schrieb:</p>
<blockquote>
<p>Also die Klammern stehen einfach 'so' da; keine Funktion, kein if...; geht das ?</p>
</blockquote>
<p>jo<br />
Edit: Bei sowas einfach mal ausprobieren (hilft immer)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1290060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290060</guid><dc:creator><![CDATA[kaffee]]></dc:creator><pubDate>Tue, 22 May 2007 17:15:36 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt in for-Schleife; Wann wird der Konstruktor aufgerufen? on Tue, 22 May 2007 17:58:30 GMT]]></title><description><![CDATA[<p>NeedSomeInfo schrieb:</p>
<blockquote>
<p>ach, sry noch ne Frage:<br />
kann ich damit einen neuen Block/Scope erstellen:</p>
<pre><code class="language-cpp">{
   string str;
   // str gibt es nur innerhalb der Klammern ?!
}
</code></pre>
<p>Also die Klammern stehen einfach 'so' da; keine Funktion, kein if...; geht das ?</p>
</blockquote>
<p>jo.<br />
das ist ein recht beliebter trick, um variablen kurzlebiger zu machen.<br />
beispiel:</p>
<pre><code class="language-cpp">int main(){
   int z=0;
   ifstream in(&quot;zahl.txt&quot;);
   in&gt;&gt;zahl;
   ++zahl;
   cout&lt;&lt;&quot;Ich wurde &quot;&lt;&lt;zahl&lt;&lt;&quot; mal aufgerufen.\n&quot;;
   ofstream out(&quot;zahl.txt&quot;);
   out&lt;&lt;zahl;
   return 0;
}
</code></pre>
<p>hier kann alles mögliche passieren. es ist generell eine schlechte idee, eine datei gleichzeitig zum lesen und zum schreiben offen zu haben. die schlechte lösung:</p>
<pre><code class="language-cpp">int main(){
   int z=0;
   ifstream in(&quot;zahl.txt&quot;);
   in&gt;&gt;zahl;
   in.close();
   ++zahl;
   cout&lt;&lt;&quot;Ich wurde &quot;&lt;&lt;zahl&lt;&lt;&quot; mal aufgerufen.\n&quot;;
   ofstream out(&quot;zahl.txt&quot;);
   out&lt;&lt;zahl;
   out.close();
   return 0;
}
</code></pre>
<p>jetzt gehts ganz bestimmt.<br />
die gute lösung:<br />
einfach die objekte frühzeitig sterben lassen.</p>
<pre><code class="language-cpp">int main(){
   int z=0;
   {
     ifstream in(&quot;zahl.txt&quot;);
     in&gt;&gt;zahl;
   }
   ++zahl;
   cout&lt;&lt;&quot;Ich wurde &quot;&lt;&lt;zahl&lt;&lt;&quot; mal aufgerufen.\n&quot;;
   {
     ofstream out(&quot;zahl.txt&quot;);
     out&lt;&lt;zahl;
   }
   return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1290083</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290083</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 22 May 2007 17:58:30 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt in for-Schleife; Wann wird der Konstruktor aufgerufen? on Tue, 22 May 2007 18:25:09 GMT]]></title><description><![CDATA[<p>Jupp, alles klar, vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1290099</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1290099</guid><dc:creator><![CDATA[NeedSomeInfo]]></dc:creator><pubDate>Tue, 22 May 2007 18:25:09 GMT</pubDate></item></channel></rss>