<?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[hilfe beim erzeugen und löschen von klassen in funktionen]]></title><description><![CDATA[<p>also habe folgendes problem<br />
habe im header eine klasse definiert</p>
<pre><code class="language-cpp">class Lebewesen 
        { 
        }; 

class Gegner:public Lebewesen 
        { 
        int tregheit; 
        int schritte; 
        public: 
        int posx; 
        int posy; 
        }; 
Gegner *feind[];
</code></pre>
<p>so nun möchte ich diesen &quot;fein&quot; im cpp erzeugen lassen.<br />
also hab ich dortfolgendes geschrieben.</p>
<pre><code class="language-cpp">int monsterzahl; //anzahl der monster 
feind=new Gegner[monsterzahl];
</code></pre>
<p>klappt auch alles soweit.</p>
<p>jetzt möchte ich das aber in einer funktion aufrufen und dort zuvor alle bereits erstellten feinde löschen.<br />
z.b.</p>
<pre><code class="language-cpp">gegnererschaffen(int z) 
{ 
delete Spielfeld-&gt;feind; 
Form1-&gt;feind=new Gegner[monsterzahl]; 
}
</code></pre>
<p>dort bring der compiler aber nur 3 fehlermeldungen für die zeile<br />
Form1-&gt;feind=new Gegner[monsterzahl];</p>
<pre><code>E2303: Typname erwartet 
E2034: Konventieren von 'int *' nach 'TSpielfeld::Gegner' nicht möglich 
E2379 In Anwendung fehlt ;
</code></pre>
<p>kann mir jemand sagen was ich falsch gemacht habe? danke schonmal für eure hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/104612/hilfe-beim-erzeugen-und-löschen-von-klassen-in-funktionen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 16 Jul 2026 03:03:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/104612.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 21 Mar 2005 18:18:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to hilfe beim erzeugen und löschen von klassen in funktionen on Mon, 21 Mar 2005 18:18:29 GMT]]></title><description><![CDATA[<p>also habe folgendes problem<br />
habe im header eine klasse definiert</p>
<pre><code class="language-cpp">class Lebewesen 
        { 
        }; 

class Gegner:public Lebewesen 
        { 
        int tregheit; 
        int schritte; 
        public: 
        int posx; 
        int posy; 
        }; 
Gegner *feind[];
</code></pre>
<p>so nun möchte ich diesen &quot;fein&quot; im cpp erzeugen lassen.<br />
also hab ich dortfolgendes geschrieben.</p>
<pre><code class="language-cpp">int monsterzahl; //anzahl der monster 
feind=new Gegner[monsterzahl];
</code></pre>
<p>klappt auch alles soweit.</p>
<p>jetzt möchte ich das aber in einer funktion aufrufen und dort zuvor alle bereits erstellten feinde löschen.<br />
z.b.</p>
<pre><code class="language-cpp">gegnererschaffen(int z) 
{ 
delete Spielfeld-&gt;feind; 
Form1-&gt;feind=new Gegner[monsterzahl]; 
}
</code></pre>
<p>dort bring der compiler aber nur 3 fehlermeldungen für die zeile<br />
Form1-&gt;feind=new Gegner[monsterzahl];</p>
<pre><code>E2303: Typname erwartet 
E2034: Konventieren von 'int *' nach 'TSpielfeld::Gegner' nicht möglich 
E2379 In Anwendung fehlt ;
</code></pre>
<p>kann mir jemand sagen was ich falsch gemacht habe? danke schonmal für eure hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/749706</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/749706</guid><dc:creator><![CDATA[black-lord-of-doom]]></dc:creator><pubDate>Mon, 21 Mar 2005 18:18:29 GMT</pubDate></item><item><title><![CDATA[Reply to hilfe beim erzeugen und löschen von klassen in funktionen on Mon, 21 Mar 2005 18:41:01 GMT]]></title><description><![CDATA[<p>Da du einen Array-Pointer hast musst du new[] und delete[] verwenden, um den Speicher zu allokieren!</p>
<p>EDIT:<br />
Und nach new[] darfst du keinen Array-Index bei Gegner angeben (da gehört einzig und allein der Constructor hin!).</p>
<p>Oder du durchläufst dein Array mit einer For-Schleife und weißt jedem Array-Element seinen Speicher einzeln zu:</p>
<pre><code class="language-cpp">for(int cnt = 0; cnt &lt; monsterzahl; cnt++)
     Form1-&gt;feind[cnt] = new Gegner();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/749722</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/749722</guid><dc:creator><![CDATA[Reyx]]></dc:creator><pubDate>Mon, 21 Mar 2005 18:41:01 GMT</pubDate></item><item><title><![CDATA[Reply to hilfe beim erzeugen und löschen von klassen in funktionen on Mon, 21 Mar 2005 19:10:59 GMT]]></title><description><![CDATA[<p>und löschen tu ichs dann so?</p>
<pre><code class="language-cpp">delete Spielfeld-&gt;feind[cnt];
</code></pre>
<p>???</p>
<p>dann bringt der aber auch nur fehlermeldungen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
kann es sein das ich dann im header noch was ändern muss?<br />
fehler waren:<br />
**E2157 Für das Löschen eines Objekts ist genau eine Umwandlung in einen Zeigeroperator erforderlich.<br />
E2303 Typname erwartet<br />
E2034 Konvertierung von 'int *' nach 'TSpielfeld::Gegner' nicht möglich<br />
E2379 In Anweisung fehlt ;<br />
**</p>
<p>kannst du mir bitte mal des andere mitem beispiel erklären??<br />
bzw dann sagen wei ich drauf zugrei wenn ich doch kein Array-Index mitgeb??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/749753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/749753</guid><dc:creator><![CDATA[black-lord-of-doom]]></dc:creator><pubDate>Mon, 21 Mar 2005 19:10:59 GMT</pubDate></item><item><title><![CDATA[Reply to hilfe beim erzeugen und löschen von klassen in funktionen on Mon, 21 Mar 2005 19:23:41 GMT]]></title><description><![CDATA[<p>also hab nun in der cpp</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------

#include &lt;vcl.h&gt;
#pragma hdrstop

#include &quot;Unit1.h&quot;
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource &quot;*.dfm&quot;
TForm1 *Form1;
gegnererschaffen(int z);
int monsterzahl=0;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormActivate(TObject *Sender)
{
gegnererschaffen(2);
}
//---------------------------------------------------------------------------

gegnererschaffen(int z)
{
for(int cnt = 0; cnt &lt; monsterzahl; cnt++) //löscht bisherige erstellte gegner
   {
   delete Form1-&gt;feind[cnt];
   }
for(int cnt = 0; cnt &lt; z; cnt++)          //erschaft neue gegner
   {
   Form1-&gt;feind[cnt] = new Gegner();
   }
monsterzahl=z;
return 0;
}
</code></pre>
<p>nun kommen aber immernoch als fehler:<br />
**<br />
[C++ Fehler] Unit1.cpp(34): E2303 Typname erwartet<br />
[C++ Fehler] Unit1.cpp(34): E2034 Konvertierung von 'int *' nach 'TForm1::Gegner *' nicht möglich<br />
[C++ Fehler] Unit1.cpp(34): E2379 In Anweisung fehlt ;<br />
**</p>
]]></description><link>https://www.c-plusplus.net/forum/post/749765</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/749765</guid><dc:creator><![CDATA[black-lord-of-doom]]></dc:creator><pubDate>Mon, 21 Mar 2005 19:23:41 GMT</pubDate></item><item><title><![CDATA[Reply to hilfe beim erzeugen und löschen von klassen in funktionen on Tue, 22 Mar 2005 00:06:21 GMT]]></title><description><![CDATA[<p>Hi,<br />
kannst du mal pls. die Headerfile zeigen? Hast du die Klasse Gegner innerhalb oder außerhalb von Form1 definiert?</p>
<p>MfG</p>
<p>Alexander Sulfrian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/749949</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/749949</guid><dc:creator><![CDATA[Alexander Sulfrian]]></dc:creator><pubDate>Tue, 22 Mar 2005 00:06:21 GMT</pubDate></item><item><title><![CDATA[Reply to hilfe beim erzeugen und löschen von klassen in funktionen on Tue, 22 Mar 2005 17:15:48 GMT]]></title><description><![CDATA[<p>so ises in der headerdatei drin <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=":/"
      alt="😕"
    /><br />
muss ich evtl die funktion da rein ne oder???</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include &lt;Classes.hpp&gt;
#include &lt;Controls.hpp&gt;
#include &lt;StdCtrls.hpp&gt;
#include &lt;Forms.hpp&gt;
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:	// Von der IDE verwaltete Komponenten
        void __fastcall FormActivate(TObject *Sender);
private:	// Anwender-Deklarationen
public:		// Anwender-Deklarationen
        __fastcall TForm1(TComponent* Owner);
        class Lebewesen
        {
        };

        class Gegner:public Lebewesen
        {
        int tregheit;
        int schritte;
        public:
        int posx;
        int posy;
        };
       Gegner *feind[];
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/750537</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/750537</guid><dc:creator><![CDATA[black-lord-of-doom]]></dc:creator><pubDate>Tue, 22 Mar 2005 17:15:48 GMT</pubDate></item><item><title><![CDATA[Reply to hilfe beim erzeugen und löschen von klassen in funktionen on Tue, 22 Mar 2005 17:44:05 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>entweder verlagerst du die Deklaration von Lebewesen und Gegner aus TForm1, oder du nimmst auch gegnererschaffen(int z) als Member von TForm1 auf.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/750564</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/750564</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Tue, 22 Mar 2005 17:44:05 GMT</pubDate></item><item><title><![CDATA[Reply to hilfe beim erzeugen und löschen von klassen in funktionen on Tue, 22 Mar 2005 17:45:18 GMT]]></title><description><![CDATA[<p>Das wäre eine Möglichkeit. Die Andere ist die Erzeugung dahin zu ändern</p>
<pre><code class="language-cpp">Form1-&gt;feind[cnt] = new TForm1::Gegner;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/750565</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/750565</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 22 Mar 2005 17:45:18 GMT</pubDate></item><item><title><![CDATA[Reply to hilfe beim erzeugen und löschen von klassen in funktionen on Tue, 22 Mar 2005 18:57:22 GMT]]></title><description><![CDATA[<p>oh danke nun gehts soweit <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="😃"
    /></p>
<p>hab mich für die sache mit der anderen erzeugung entscheiden.</p>
<p>kann mir jemand sagen wie ich da dann drauf zugreifen kann???</p>
<pre><code class="language-cpp">for(int cnt = 0; cnt &lt; z; cnt++)          
   {
   Form1-&gt;feind[cnt].tregheit = 2;
   }
</code></pre>
<p>oder muss ich das nun auch anders angehen?</p>
<p><em><em>[C++ Fehler] levellaufen.cpp(183): E2294 Auf linker Seite der Struktur ist . oder .</em> erforderlich.</em>*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/750628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/750628</guid><dc:creator><![CDATA[black-lord-of-doom]]></dc:creator><pubDate>Tue, 22 Mar 2005 18:57:22 GMT</pubDate></item><item><title><![CDATA[Reply to hilfe beim erzeugen und löschen von klassen in funktionen on Tue, 22 Mar 2005 19:20:06 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>da du die Instanzen per Pointer ansprichst, must du</p>
<pre><code class="language-cpp">Form1-&gt;feind[cnt]-&gt;tregheit = 2;
</code></pre>
<p>schreiben.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/750655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/750655</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Tue, 22 Mar 2005 19:20:06 GMT</pubDate></item><item><title><![CDATA[Reply to hilfe beim erzeugen und löschen von klassen in funktionen on Tue, 22 Mar 2005 19:30:28 GMT]]></title><description><![CDATA[<p>danke geht auch=)</p>
<p>nachdem ich nun aber über</p>
<pre><code class="language-cpp">for(int cnt = 0; cnt &lt; z; cnt++)
   {
   Form1-&gt;feind[cnt]-&gt;tregheit = 2;
   }
</code></pre>
<p>daten zugewiesen hab gibts ne fehlermeldung wenn ich mein programm schliese dann schriebt der irgendwas raus von wegen</p>
<p>&quot;Im projekt xyz xyz.exe ist eine Exception der klasse EAccessViolation aufgetreten. Meldung: 'zugriffsverletzung bei Adresse 00000017 lesen von adresse 00000017' prozeß wurde angehalten. mit einzelne anweisung oder start fortsetzen&quot;</p>
<p>habs versucht indem ich zuvor alles wieder löschen lass also mit</p>
<pre><code class="language-cpp">void __fastcall TForm1::FormDestroy(TObject *Sender)
{
for(int cnt = 0; cnt &lt; monsterzahl; cnt++)
   {
   delete Form1-&gt;feind[cnt];
   }
}
</code></pre>
<p>aber geht immernoch net <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/750666</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/750666</guid><dc:creator><![CDATA[black-lord-of-doom]]></dc:creator><pubDate>Tue, 22 Mar 2005 19:30:28 GMT</pubDate></item><item><title><![CDATA[Reply to hilfe beim erzeugen und löschen von klassen in funktionen on Tue, 22 Mar 2005 19:35:30 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Versuch mal<br />
[cpp]TForm1::FormDestroy(TObject *Sender)<br />
{<br />
...<br />
<strong>delete feind[cnt];</strong><br />
[/cpp]<br />
Lass in Methoden von Formen immer dem Formennamen weg!</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/750669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/750669</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Tue, 22 Mar 2005 19:35:30 GMT</pubDate></item><item><title><![CDATA[Reply to hilfe beim erzeugen und löschen von klassen in funktionen on Tue, 22 Mar 2005 19:46:59 GMT]]></title><description><![CDATA[<p>ok danke werds mir merken aber geht immernoch net <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=":/"
      alt="😕"
    /><br />
fehler bleibt:/</p>
]]></description><link>https://www.c-plusplus.net/forum/post/750675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/750675</guid><dc:creator><![CDATA[black-lord-of-doom]]></dc:creator><pubDate>Tue, 22 Mar 2005 19:46:59 GMT</pubDate></item><item><title><![CDATA[Reply to hilfe beim erzeugen und löschen von klassen in funktionen on Tue, 22 Mar 2005 21:46:04 GMT]]></title><description><![CDATA[<p>ok habs schon gefunden muste im header in der '[]' klammer nen wert eintragen dann gehts;)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/750727</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/750727</guid><dc:creator><![CDATA[black-lord-of-doom]]></dc:creator><pubDate>Tue, 22 Mar 2005 21:46:04 GMT</pubDate></item></channel></rss>