<?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[Fehler bei vector of object]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgendes Problem. Hab für eine Projektarbeit einen Prototypen einer Klasse für die Auflistung von Flugzeugen programmiert. Dabei speicher ich die Flugzeuge in einen Vektor. Dies funktioniert auch wunderbar, aber bei Ausführung muss ich feststellen,dass mein Objekt einmal konstruiert und mind. 3mal zerstört wird und am Ende trotzdem noch vorhanden ist. Meine Frage ist, warum wird mein Destruktor mind. einmal aufgerufen?</p>
<p>Klasse:</p>
<pre><code class="language-cpp">// airplane.h

#pragma once	//verhindert doppelte Benennung
#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

class airplane {
   private:
 //++++++Flugzeugeigenschaften++++++++++
        string name1;
        short name2;
        short sprit;
        short type;
        short priority;
        short position;
         short anzahl;
    public:
 //+++++++Funktionen+++++++++++++++++++++
		airplane(string gesellschaft,short flugnummer,short typ,short tank){     //Konstruktor
                name1=gesellschaft;
                name2=flugnummer;
                type=typ;
                sprit=tank;
                priority=1;
                position=0;
                cout &lt;&lt;&quot;Flugzeug initialisiert&quot;&lt;&lt;endl;
                anzahl++;
        }
		airplane(const airplane &amp;c){		//Copy-Constructor
				name1=c.name1;
				name2=c.name2;
				type=c.type;
				sprit=c.sprit;
				priority=c.priority;
				position=c.position;
		}						
        ~airplane(){                                  //Destruktor
			cerr&lt;&lt;&quot;destruktor&quot;&lt;&lt;endl;					
            cout&lt;&lt;&quot;Flugzeug wurde zerstoert&quot;&lt;&lt;endl;
            anzahl--;
        }
        void sarten(){
            position=3;
            return;
        }
        short landen(short permission,short maxlength){
            position=1;
            if(sprit&lt;=300)priority=2;    //Prioritäten setzten -&gt;Rangfolge der Dringlichkeit
            if(sprit&lt;=250)priority=3;
            if(sprit&lt;=200)priority=4;
            if(sprit&lt;=150)priority=5;
            if(sprit&lt;=90)absturz();
            if(permission==1){
                cout&lt;&lt;&quot;Flug&quot;&lt;&lt;name1&lt;&lt;&quot;-&quot;&lt;&lt;name2&lt;&lt;&quot;landet&quot;&lt;&lt;endl;
                position=2;
            }
            return priority;
        }
        void absturz(){
            cout &lt;&lt; &quot;Flug&quot;&lt;&lt;name1&lt;&lt;&quot;-&quot;&lt;&lt;name2&lt;&lt;&quot;ist abgestuerzt&quot;&lt;&lt;endl;
            this-&gt;~airplane();
            return;
        }
        void umleiten(){
            cout &lt;&lt; &quot;Flug&quot;&lt;&lt;name1&lt;&lt;&quot;-&quot;&lt;&lt;name2&lt;&lt;&quot; wurde umgeleitet&quot;&lt;&lt;endl;
            this-&gt;~airplane();
            return;
        }
		void anzeigen(){
			cout &lt;&lt;endl&lt;&lt; &quot;Flug &quot;&lt;&lt;name1&lt;&lt;&quot;-&quot;&lt;&lt;name2&lt;&lt;&quot; Typ: &quot;&lt;&lt;type&lt;&lt;&quot; Tank: &quot;&lt;&lt;sprit&lt;&lt;endl;
			cout&lt;&lt;&quot;aktuelle Position: &quot;;
			switch(position){
				case 1:
					cout &lt;&lt;&quot;Landeanflug-Warteschlange&quot;&lt;&lt;endl;
					break;
				case 2:
					cout &lt;&lt;&quot;Rollfeld&quot;&lt;&lt;endl;
					break;
				case 3:
					cout &lt;&lt;&quot;Start-Warteschlange&quot;&lt;&lt;endl;
					break;
				default:
					cerr&lt;&lt;&quot;unbekannt&quot;&lt;&lt;endl;
					break;
			}
		}

};
</code></pre>
<pre><code class="language-cpp">main:
#include &quot;stdafx.h&quot;
#include &quot;C:\Users\Stephan\Documents\Visual Studio 2005\Projects\airplane\airplane\airplane.h&quot;
#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;string&gt;
#include &lt;cstdlib&gt;

using namespace std;

int main()
{
    string gesellschaft = &quot;LH&quot;;
    short flugnummer=1256,sprit=400,typ=747,i=0;
	unsigned int k=0;
    vector &lt;airplane&gt; flugzeugschleife;
	//flugzeug.resize(k,airplane::airplane(gesellschaft,(flugnummer+i),typ,(sprit-10*i))); Alternative
	while(i&lt;5){
		flugzeugschleife.resize((1+i),airplane::airplane(gesellschaft,(flugnummer+i),typ,(sprit-10*i)));
		//flugzeug.push_back(airplane(gesellschaft,(flugnummer+i),typ,(sprit-10*i))); Alternative
		i++;
    }
	for(i=0;i&lt;5;i++) flugzeugschleife[i].anzeigen();
	flugzeugschleife[i-1].~airplane();
	for(i=0;i&lt;4;i++) flugzeugschleife[i].anzeigen();
	system(&quot;Pause&quot;);
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/303754/fehler-bei-vector-of-object</link><generator>RSS for Node</generator><lastBuildDate>Mon, 10 Aug 2026 06:31:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/303754.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 21 May 2012 23:30:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fehler bei vector of object on Tue, 22 May 2012 06:56:16 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgendes Problem. Hab für eine Projektarbeit einen Prototypen einer Klasse für die Auflistung von Flugzeugen programmiert. Dabei speicher ich die Flugzeuge in einen Vektor. Dies funktioniert auch wunderbar, aber bei Ausführung muss ich feststellen,dass mein Objekt einmal konstruiert und mind. 3mal zerstört wird und am Ende trotzdem noch vorhanden ist. Meine Frage ist, warum wird mein Destruktor mind. einmal aufgerufen?</p>
<p>Klasse:</p>
<pre><code class="language-cpp">// airplane.h

#pragma once	//verhindert doppelte Benennung
#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

class airplane {
   private:
 //++++++Flugzeugeigenschaften++++++++++
        string name1;
        short name2;
        short sprit;
        short type;
        short priority;
        short position;
         short anzahl;
    public:
 //+++++++Funktionen+++++++++++++++++++++
		airplane(string gesellschaft,short flugnummer,short typ,short tank){     //Konstruktor
                name1=gesellschaft;
                name2=flugnummer;
                type=typ;
                sprit=tank;
                priority=1;
                position=0;
                cout &lt;&lt;&quot;Flugzeug initialisiert&quot;&lt;&lt;endl;
                anzahl++;
        }
		airplane(const airplane &amp;c){		//Copy-Constructor
				name1=c.name1;
				name2=c.name2;
				type=c.type;
				sprit=c.sprit;
				priority=c.priority;
				position=c.position;
		}						
        ~airplane(){                                  //Destruktor
			cerr&lt;&lt;&quot;destruktor&quot;&lt;&lt;endl;					
            cout&lt;&lt;&quot;Flugzeug wurde zerstoert&quot;&lt;&lt;endl;
            anzahl--;
        }
        void sarten(){
            position=3;
            return;
        }
        short landen(short permission,short maxlength){
            position=1;
            if(sprit&lt;=300)priority=2;    //Prioritäten setzten -&gt;Rangfolge der Dringlichkeit
            if(sprit&lt;=250)priority=3;
            if(sprit&lt;=200)priority=4;
            if(sprit&lt;=150)priority=5;
            if(sprit&lt;=90)absturz();
            if(permission==1){
                cout&lt;&lt;&quot;Flug&quot;&lt;&lt;name1&lt;&lt;&quot;-&quot;&lt;&lt;name2&lt;&lt;&quot;landet&quot;&lt;&lt;endl;
                position=2;
            }
            return priority;
        }
        void absturz(){
            cout &lt;&lt; &quot;Flug&quot;&lt;&lt;name1&lt;&lt;&quot;-&quot;&lt;&lt;name2&lt;&lt;&quot;ist abgestuerzt&quot;&lt;&lt;endl;
            this-&gt;~airplane();
            return;
        }
        void umleiten(){
            cout &lt;&lt; &quot;Flug&quot;&lt;&lt;name1&lt;&lt;&quot;-&quot;&lt;&lt;name2&lt;&lt;&quot; wurde umgeleitet&quot;&lt;&lt;endl;
            this-&gt;~airplane();
            return;
        }
		void anzeigen(){
			cout &lt;&lt;endl&lt;&lt; &quot;Flug &quot;&lt;&lt;name1&lt;&lt;&quot;-&quot;&lt;&lt;name2&lt;&lt;&quot; Typ: &quot;&lt;&lt;type&lt;&lt;&quot; Tank: &quot;&lt;&lt;sprit&lt;&lt;endl;
			cout&lt;&lt;&quot;aktuelle Position: &quot;;
			switch(position){
				case 1:
					cout &lt;&lt;&quot;Landeanflug-Warteschlange&quot;&lt;&lt;endl;
					break;
				case 2:
					cout &lt;&lt;&quot;Rollfeld&quot;&lt;&lt;endl;
					break;
				case 3:
					cout &lt;&lt;&quot;Start-Warteschlange&quot;&lt;&lt;endl;
					break;
				default:
					cerr&lt;&lt;&quot;unbekannt&quot;&lt;&lt;endl;
					break;
			}
		}

};
</code></pre>
<pre><code class="language-cpp">main:
#include &quot;stdafx.h&quot;
#include &quot;C:\Users\Stephan\Documents\Visual Studio 2005\Projects\airplane\airplane\airplane.h&quot;
#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;string&gt;
#include &lt;cstdlib&gt;

using namespace std;

int main()
{
    string gesellschaft = &quot;LH&quot;;
    short flugnummer=1256,sprit=400,typ=747,i=0;
	unsigned int k=0;
    vector &lt;airplane&gt; flugzeugschleife;
	//flugzeug.resize(k,airplane::airplane(gesellschaft,(flugnummer+i),typ,(sprit-10*i))); Alternative
	while(i&lt;5){
		flugzeugschleife.resize((1+i),airplane::airplane(gesellschaft,(flugnummer+i),typ,(sprit-10*i)));
		//flugzeug.push_back(airplane(gesellschaft,(flugnummer+i),typ,(sprit-10*i))); Alternative
		i++;
    }
	for(i=0;i&lt;5;i++) flugzeugschleife[i].anzeigen();
	flugzeugschleife[i-1].~airplane();
	for(i=0;i&lt;4;i++) flugzeugschleife[i].anzeigen();
	system(&quot;Pause&quot;);
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2213980</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2213980</guid><dc:creator><![CDATA[Opikividi]]></dc:creator><pubDate>Tue, 22 May 2012 06:56:16 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler bei vector of object on Tue, 22 May 2012 00:09:42 GMT]]></title><description><![CDATA[<p>Poste bitte deinen Code nochmals mit cpp Tags. Sonst kann dein Code kaum jemand lesen.</p>
<p>Wenn du deine Objekte in den Vektor tust, dann werden die Objekte kopiert, d.h. es wird der Copy Constructor aufgerufen. Schreibe dort mal sowas wie</p>
<pre><code class="language-cpp">cout &lt;&lt; &quot;Copy constructor called&quot; &lt;&lt; endl;
</code></pre>
<p>Dann solltest du sehen (ich hab mir jetzt den Code nicht genau angesehen, da man ihn so kaum lesen kann) , dass gleich oft ein Objekt erzeugt wie zerstoert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2213981</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2213981</guid><dc:creator><![CDATA[icarus2]]></dc:creator><pubDate>Tue, 22 May 2012 00:09:42 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler bei vector of object on Tue, 22 May 2012 00:13:28 GMT]]></title><description><![CDATA[<p>Du hast zwei konzeptionelle Fehler in deinem code.<br />
Erstmal weißt du gar nicht wie oft der copy-ctor auferufen wurde. Das gibt nämlich keine Meldung aus.<br />
Dann rufst du den Destruktor explizit auf. Warum machst du sowas? Das ist in dem gegebenen Fall absoluter Schwachsinn. Wenn du den Destruktor 2 mal explizit aufrufst, kommt dann natürlich auch 2 mal die Meldung &quot;Flugzeug wurde zerstoert&quot;. Und noch ein drittes mal, wenn das entsprechende Objekt von &quot;airplane&quot; zerstört wird, weil das ja wieder einen automatischen Destruktor-Aufruf zur Folge hat.</p>
<p>Kurz gesagt, schlag dir sowas</p>
<pre><code class="language-cpp">this-&gt;~airplane();
</code></pre>
<p>oder sowas</p>
<pre><code class="language-cpp">flugzeugschleife[i-1].~airplane();
</code></pre>
<p>aus dem Kopf. Wofür du das auch immer gemacht hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2213982</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2213982</guid><dc:creator><![CDATA[kleiner Troll]]></dc:creator><pubDate>Tue, 22 May 2012 00:13:28 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler bei vector of object on Tue, 22 May 2012 00:30:23 GMT]]></title><description><![CDATA[<p>sorry, habs beim ersten Mal etwas vercheckt. Hab</p>
<pre><code class="language-cpp">cout &lt;&lt; &quot;Copy constructor called&quot; &lt;&lt; endl;
</code></pre>
<p>eingefügt und zumindest erkannt, dass mehrere Objekte kopiert werden und diese dann bis auf eines wieder gelöscht werden. Ich kann mich aber nicht erinnern, mehr als ein Objekt pro Schleifendurchgang erstellt zu haben. Liegt das daran, dass an meinem ...resize((1+i),..) [Zeile 18]?</p>
<pre><code class="language-cpp">// airplane.h

#pragma once //verhindert doppelte Benennung
#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

class airplane {
private:
//++++++Flugzeugeigenschaften++++++++++
string name1;
short name2;
short sprit;
short type;
short priority;
short position;
short anzahl;
public:
//+++++++Funktionen+++++++++++++++++++++
airplane(string gesellschaft,short flugnummer,short typ,short tank){ //Konstruktor
name1=gesellschaft;
name2=flugnummer;
type=typ;
sprit=tank;
priority=1;
position=0;
cout &lt;&lt;&quot;Flugzeug initialisiert&quot;&lt;&lt;endl;
anzahl++;
}
airplane(const airplane &amp;c){ //Copy-Constructor
name1=c.name1;
name2=c.name2;
type=c.type;
sprit=c.sprit;
priority=c.priority;
position=c.position;
}
~airplane(){ //Destruktor
cerr&lt;&lt;&quot;destruktor&quot;&lt;&lt;endl;
cout&lt;&lt;&quot;Flugzeug wurde zerstoert&quot;&lt;&lt;endl;
anzahl--;
}
void sarten(){
position=3;
return;
}
short landen(short permission,short maxlength){
position=1;
if(sprit&lt;=300)priority=2; //Prioritäten setzten -&gt;Rangfolge der Dringlichkeit
if(sprit&lt;=250)priority=3;
if(sprit&lt;=200)priority=4;
if(sprit&lt;=150)priority=5;
if(sprit&lt;=90)absturz();
if(permission==1){
cout&lt;&lt;&quot;Flug&quot;&lt;&lt;name1&lt;&lt;&quot;-&quot;&lt;&lt;name2&lt;&lt;&quot;landet&quot;&lt;&lt;endl;
position=2;
}
return priority;
}
void absturz(){
cout &lt;&lt; &quot;Flug&quot;&lt;&lt;name1&lt;&lt;&quot;-&quot;&lt;&lt;name2&lt;&lt;&quot;ist abgestuerzt&quot;&lt;&lt;endl;
this-&gt;~airplane();
return;
}
void umleiten(){
cout &lt;&lt; &quot;Flug&quot;&lt;&lt;name1&lt;&lt;&quot;-&quot;&lt;&lt;name2&lt;&lt;&quot; wurde umgeleitet&quot;&lt;&lt;endl;
this-&gt;~airplane();
return;
}
void anzeigen(){
cout &lt;&lt;endl&lt;&lt; &quot;Flug &quot;&lt;&lt;name1&lt;&lt;&quot;-&quot;&lt;&lt;name2&lt;&lt;&quot; Typ: &quot;&lt;&lt;type&lt;&lt;&quot; Tank: &quot;&lt;&lt;sprit&lt;&lt;endl;
cout&lt;&lt;&quot;aktuelle Position: &quot;;
switch(position){
case 1:
cout &lt;&lt;&quot;Landeanflug-Warteschlange&quot;&lt;&lt;endl;
break;
case 2:
cout &lt;&lt;&quot;Rollfeld&quot;&lt;&lt;endl;
break;
case 3:
cout &lt;&lt;&quot;Start-Warteschlange&quot;&lt;&lt;endl;
break;
default:
cerr&lt;&lt;&quot;unbekannt&quot;&lt;&lt;endl;
break;
}
}

};
</code></pre>
<p>main</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
#include &quot;C:\Users\Stephan\Documents\Visual Studio 2005\Projects\airplane\airplane\airplane.h&quot;
#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;string&gt;
#include &lt;cstdlib&gt;

using namespace std;

int main()
{
string gesellschaft = &quot;LH&quot;;
short flugnummer=1256,sprit=400,typ=747,i=0;
unsigned int k=0;
vector &lt;airplane&gt; flugzeugschleife;
//flugzeug.resize(k,airplane::airplane(gesellschaft,(flugnummer+i),typ,(sprit-10*i))); Alternative
while(i&lt;5){
flugzeugschleife.resize((1+i),airplane::airplane(gesellschaft,(flugnummer+i),typ,(sprit-10*i)));
//flugzeug.push_back(airplane(gesellschaft,(flugnummer+i),typ,(sprit-10*i))); Alternative
i++;
}
for(i=0;i&lt;5;i++) flugzeugschleife[i].anzeigen();
flugzeugschleife[i-1].~airplane();
for(i=0;i&lt;4;i++) flugzeugschleife[i].anzeigen();
system(&quot;Pause&quot;);
return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2213985</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2213985</guid><dc:creator><![CDATA[Opikividi]]></dc:creator><pubDate>Tue, 22 May 2012 00:30:23 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler bei vector of object on Tue, 22 May 2012 00:39:12 GMT]]></title><description><![CDATA[<p>kleiner Troll schrieb:</p>
<blockquote>
<p>Dann rufst du den Destruktor explizit auf. Warum machst du sowas? Das ist in dem gegebenen Fall absoluter Schwachsinn. Wenn du den Destruktor 2 mal explizit aufrufst, kommt dann natürlich auch 2 mal die Meldung &quot;Flugzeug wurde zerstoert&quot;. Und noch ein drittes mal, wenn das entsprechende Objekt von &quot;airplane&quot; zerstört wird, weil das ja wieder einen automatischen Destruktor-Aufruf zur Folge hat.</p>
<p>Kurz gesagt, schlag dir sowas</p>
<pre><code class="language-cpp">this-&gt;~airplane();
</code></pre>
<p>oder sowas</p>
<pre><code class="language-cpp">flugzeugschleife[i-1].~airplane();
</code></pre>
<p>aus dem Kopf. Wofür du das auch immer gemacht hast.</p>
</blockquote>
<p>Habs mir vorgemerkt für später, aber momentan wird der Destruktor eben nicht explizit über die Funktionen absturz() und umleiten() aufgerufen, sonst müsste ich ja eine Meldung auf dem Bildschirm sehen. Die Zeile mit</p>
<pre><code class="language-cpp">flugzeugschleife[i-1].~airplane();
</code></pre>
<p>war für mich nur ein Test, um am Ende zu sehen, welches Objekt zuerst abgebaut wird. Das Problem liegt vielmehr in meiner while-Schleife. Dort werden mehr Objekte erzeugt, als ich eigentlich brauche und dann gleich wieder zerstört -&gt;Sinn? Ich hab keine Ahnung wie ich das angestellt habe, aber ich glaube, dass hängt mit der Vektor-Funktion zusammen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2213987</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2213987</guid><dc:creator><![CDATA[Opikividi]]></dc:creator><pubDate>Tue, 22 May 2012 00:39:12 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler bei vector of object on Tue, 22 May 2012 01:01:51 GMT]]></title><description><![CDATA[<p>Opikividi schrieb:</p>
<blockquote>
<p>Die Zeile mit</p>
<pre><code class="language-cpp">flugzeugschleife[i-1].~airplane();
</code></pre>
<p>war für mich nur ein Test, um am Ende zu sehen, welches Objekt zuerst abgebaut wird. Das Problem liegt vielmehr in meiner while-Schleife. Dort werden mehr Objekte erzeugt, als ich eigentlich brauche und dann gleich wieder zerstört -&gt;Sinn? Ich hab keine Ahnung wie ich das angestellt habe, aber ich glaube, dass hängt mit der Vektor-Funktion zusammen.</p>
</blockquote>
<p>*seufz*<br />
Ok, du hast glaube ich völlig mißverstanden was für einen Zweck der Destruktor hat. Irgendwie scheinst du anzunehmen, das ein Objekt (in dem Fall ein &quot;airplane&quot;) zerstört wird, wenn du den Destruktor aufrufst. Es ist andersrum. Nicht &quot;Destruktor wird auferufen =&gt; Objekt wird zerstört&quot; sondern &quot;Objekt wird zerstört =&gt; Destruktor wird aufgerufen&quot;.</p>
<p>Um mal auf deinen konkreten Fall einzugehen: Ja, ein vector erstellt und zerstört hin und wieder Objekte. Vorallem dann, wenn er größer wird. Neuen, größeren Speicher anfordern -&gt; Alte Objekte in neuen Speicher kopieren (mit copy-ctor) -&gt; Alte Objekte aus altem Speicher entfernen (was dann den Destruktor aufruft).</p>
<p>Wenn du das Objekt, das an letzter Stelle im vector ist, zerstören willst, mach btw einfach</p>
<pre><code class="language-cpp">flugzeugschleife.pop_back();
</code></pre>
<p>. Dann ist das Flugzeug auch tatsächlich weg. Und falls du nur Informationen übers Flugzeug willst, schreib dir eine info-Funktion, die Daten übers Flugzeug ausgibt, und ruf die auf. So ziemlich alles bloß nicht den Destruktor. Dafür ist er nicht da, der hat seine eigene Aufgabe.</p>
<p>Ich bin mir übrigens nicht ganz sicher, ob das folgende wirklich das macht, was du glaubst.</p>
<pre><code class="language-cpp">for(i=0;i&lt;5;i++) flugzeugschleife[i].anzeigen();
flugzeugschleife[i-1].~airplane();
</code></pre>
<p>Das ist reines Glück, dass das hier nicht direkt abstürzt - oder schlimmeres. Der Grund warum es funktioniert, ist das</p>
<pre><code class="language-cpp">flugzeugschleife[i-1]
</code></pre>
<p>das &quot;i&quot; nimmt, das du hier</p>
<pre><code class="language-cpp">short flugnummer=1256,sprit=400,typ=747,i=0;
</code></pre>
<p>erstellt und hier</p>
<pre><code class="language-cpp">while(i&lt;5){
  /...
  i++;
}
</code></pre>
<p>auf 5 erhöht hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2213990</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2213990</guid><dc:creator><![CDATA[kleiner Troll]]></dc:creator><pubDate>Tue, 22 May 2012 01:01:51 GMT</pubDate></item></channel></rss>