<?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[Dynamische Klasse| Methode verlngt Zeiger]]></title><description><![CDATA[<p>Hallo ich habe ein Problemchen, was auch sonst <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>
<p>Ich habe eine Klasse:</p>
<pre><code class="language-cpp">class myClass
{
     public:
            MyMethode(BITMAP *image)
            {
                blit(source, image, source_x, source_y, dest_x, dest_y, m_width, m_height);
            }
};
</code></pre>
<p>Sprich die Methode erwartet ein Zeiger auf eine BITMAP Struktur(Allegro lässt grüßen <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>Nun rufe ich die Methode etc... so auf:</p>
<pre><code class="language-cpp">//int main etc...

BITMAP *bitmap;
myClass objekt[50];

//for jedes objekt
objekt[i] = new myClass;

objekt[0]-&gt;MyMethode(bitmap); // Absturz
</code></pre>
<p>Alle anderen Methoden funktionieren, die lediglich Attribute der Klasse ändern etc... Wenn ich das Objekt normal initialisiere (my Class Objekt;) dann funktioniert es wunderbar, es muss also am Zeiger liegen, aber ich komme nicht auf die Lösung. Ich hoffe ihr habt eine Ahung <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>
<p>Grüsse</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/194003/dynamische-klasse-methode-verlngt-zeiger</link><generator>RSS for Node</generator><lastBuildDate>Mon, 28 Sep 2026 08:36:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/194003.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 02 Oct 2007 16:19:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Dynamische Klasse| Methode verlngt Zeiger on Tue, 02 Oct 2007 16:19:06 GMT]]></title><description><![CDATA[<p>Hallo ich habe ein Problemchen, was auch sonst <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>
<p>Ich habe eine Klasse:</p>
<pre><code class="language-cpp">class myClass
{
     public:
            MyMethode(BITMAP *image)
            {
                blit(source, image, source_x, source_y, dest_x, dest_y, m_width, m_height);
            }
};
</code></pre>
<p>Sprich die Methode erwartet ein Zeiger auf eine BITMAP Struktur(Allegro lässt grüßen <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>Nun rufe ich die Methode etc... so auf:</p>
<pre><code class="language-cpp">//int main etc...

BITMAP *bitmap;
myClass objekt[50];

//for jedes objekt
objekt[i] = new myClass;

objekt[0]-&gt;MyMethode(bitmap); // Absturz
</code></pre>
<p>Alle anderen Methoden funktionieren, die lediglich Attribute der Klasse ändern etc... Wenn ich das Objekt normal initialisiere (my Class Objekt;) dann funktioniert es wunderbar, es muss also am Zeiger liegen, aber ich komme nicht auf die Lösung. Ich hoffe ihr habt eine Ahung <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>
<p>Grüsse</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376735</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376735</guid><dc:creator><![CDATA[MuuuhKuh]]></dc:creator><pubDate>Tue, 02 Oct 2007 16:19:06 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische Klasse| Methode verlngt Zeiger on Tue, 02 Oct 2007 16:24:13 GMT]]></title><description><![CDATA[<p>Öhm, so wie ich das sehe, zeigt der Zeiger ins Nirvana, du musst erst Speicher anfordern und den dann sinnvoll füllen.<br />
Sonst versuchst du ja, ein nicht-existierendes Bitmap zu blitten...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376738</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376738</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Tue, 02 Oct 2007 16:24:13 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische Klasse| Methode verlngt Zeiger on Tue, 02 Oct 2007 16:31:39 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">myClass objekt[50]; 

//for jedes objekt 
objekt[i] = new myClass;
</code></pre>
<p>Kann doch auch schon nicht funktionieren, da objekt[i] vom Typ myClass und das Ergebnis des new-Ausdrucks vom Typ myClass* ist...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376745</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376745</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 02 Oct 2007 16:31:39 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische Klasse| Methode verlngt Zeiger on Tue, 02 Oct 2007 16:50:13 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<blockquote>
<p>Kann doch auch schon nicht funktionieren, da objekt[i] vom Typ myClass und das Ergebnis des new-Ausdrucks vom Typ myClass* ist...</p>
</blockquote>
<p>Sorry habe das * vergessen, so ist es richtig:</p>
<pre><code>myClass objekt[50];

//for jedes objekt
objekt[i] = new myClass;
</code></pre>
<p>Grüsse</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376758</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376758</guid><dc:creator><![CDATA[MuuuhKuh]]></dc:creator><pubDate>Tue, 02 Oct 2007 16:50:13 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische Klasse| Methode verlngt Zeiger on Tue, 02 Oct 2007 16:51:05 GMT]]></title><description><![CDATA[<p>Oh man so ist es richtig:</p>
<p>[cpp]<br />
myClass *****objekt[50];</p>
<p>//for jedes objekt<br />
objekt[i] = new myClass;<br />
[/cpp]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376760</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376760</guid><dc:creator><![CDATA[MuuuhKuh]]></dc:creator><pubDate>Tue, 02 Oct 2007 16:51:05 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische Klasse| Methode verlngt Zeiger on Tue, 02 Oct 2007 16:59:59 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">Bitmap *bitmap = new Bitmap(&quot;lolzeriffic.bmp&quot;);
</code></pre>
<p>?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376769</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376769</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Tue, 02 Oct 2007 16:59:59 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische Klasse| Methode verlngt Zeiger on Tue, 02 Oct 2007 17:53:45 GMT]]></title><description><![CDATA[<p>Ne das ist es nicht, BITMAP ist struct. Ich habe aber eine Klasse, die als Array initialisiert wird.</p>
<p>In der Methode rufe ich die Funktion Blit() auf, welche einen Zeiger auf eine Bitmap Struktur verlangt, muss ich dabei auf etwas achten, wenn die Objekte der Klasse &quot;myClass&quot; so, wie oben, initialisiert werden?</p>
<p>Grüsse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376801</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376801</guid><dc:creator><![CDATA[MuuuhKuh]]></dc:creator><pubDate>Tue, 02 Oct 2007 17:53:45 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische Klasse| Methode verlngt Zeiger on Tue, 02 Oct 2007 17:55:03 GMT]]></title><description><![CDATA[<p>MuuuhKuh schrieb:</p>
<blockquote>
<p>In der Methode rufe ich die Funktion Blit() auf, welche einen Zeiger auf eine Bitmap Struktur verlangt, muss ich dabei auf etwas achten, wenn die Objekte der Klasse &quot;myClass&quot; so, wie oben, initialisiert werden?</p>
</blockquote>
<p>Du musst vor allem darauf achten dass der Zeiger den Du übergibst auf etwas gültiges zeigt. Solltest Du nicht wenigstens ein Bild laden? <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/1376804</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376804</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 02 Oct 2007 17:55:03 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische Klasse| Methode verlngt Zeiger on Tue, 02 Oct 2007 20:07:45 GMT]]></title><description><![CDATA[<p>Ihr überseht da gerade etwas, hier mal der echte Code(Ausschnitt):</p>
<pre><code class="language-cpp">BITMAP * doublebuffer;

    CIcon icon1(&quot;icon.bmp&quot;);
    CIcon *icon_array[50];

    for(int i = 0; i &lt; 50; i++)
    {
        pos = i*2;
        icon_array[i] = new CIcon;
        icon_array[i]-&gt;setpos(pos,pos);  
    }

    icon_array[0]-&gt;getY(); // Da ist kein Absturz!!!!

    //Weiter unten im Programm
    for(int i = 0; i &lt; 50; i++)
    {
        icon_array[i]-&gt;paint(doubleBuffer, 0, 0); //ABSTURZ!!!!
    }

   //paint() benutzt blit...doubelbuffer ist oben als GLOBALE Deklariert:
   //Hier nochmal die funktion blit:
   void blit(BITMAP *source, BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height);
</code></pre>
<p>Hoffe das sagt mehr aus <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>
<p>Grüsse</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376864</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376864</guid><dc:creator><![CDATA[MuuuhKuh]]></dc:creator><pubDate>Tue, 02 Oct 2007 20:07:45 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische Klasse| Methode verlngt Zeiger on Tue, 02 Oct 2007 20:09:09 GMT]]></title><description><![CDATA[<p>Auch in diesem Codebeispiel ist das Bitmap &quot;doubleBuffer&quot; ein uninitialisierter Zeiger. Das ist normal, dass das abstürzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376866</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376866</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 02 Oct 2007 20:09:09 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische Klasse| Methode verlngt Zeiger on Tue, 02 Oct 2007 22:47:52 GMT]]></title><description><![CDATA[<p>Ahhh ich habe es hinbekommen, hier mal meine Lösung:</p>
<pre><code class="language-cpp">//doubleBuffer etc...

    CIcon *Icon_array[10];

    for(int i=0;i &lt; 10; i++)
    {
      Icon_array[i]= new CIcon;  
      Icon_array[i]-&gt;setimage(&quot;icon.bmp&quot;);   //FEHLER WAR HIER!!!!  
      Icon_array[i]-&gt;setpos(i*2,i*2);
    }
    //Weiter unten im Code
    for(int i=0;i &lt; 10; i++)
    {   
      Icon_array[i]-&gt;paint(doubleBuffer,0,0);
    }
</code></pre>
<p>Danke, das habe ich total vergessen, dass man BITMAP* auch füllen muss -.-<br />
Soviel dazu, im nachhinein scheint es auch logisch, dass der Fehler darin bestand <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="😕"
    /></p>
<p>Jetzt habe ich noch eine kleine Programmiertechnische Frage:<br />
Ihr lest z.B. alle Datein eines Ordners aus. Und wollt diese wie oben mit Bildern darstellen (Die Klasse drum herum bietet noch tolle funktionen etc..).<br />
Wieviel Platz würdet ihr für die Objektzeiger verenden?</p>
<pre><code class="language-cpp">CIcon *Icon_array[10];
</code></pre>
<p>Oder gibt es da eine komplett dynamische Lösung bzgl. Klasseninstanzen...mal ausgegangen die pseudo Funktion &quot;int count_dirs(char *path)&quot; gibt die Anzahl der Dateien wieder.</p>
<p>Danke nochmal für die Denkanstöße <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>
<p>Grüsse</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376936</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376936</guid><dc:creator><![CDATA[MuuuhKuh]]></dc:creator><pubDate>Tue, 02 Oct 2007 22:47:52 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische Klasse| Methode verlngt Zeiger on Tue, 02 Oct 2007 22:55:15 GMT]]></title><description><![CDATA[<p>Wie wäre es mit std::list oder std::vector?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376938</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Tue, 02 Oct 2007 22:55:15 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische Klasse| Methode verlngt Zeiger on Wed, 03 Oct 2007 20:51:14 GMT]]></title><description><![CDATA[<p>Hallo, ich habe es mit list oder vector noch nicht probiert, aber ich denke, diese Lösung hier ist auch ganz ok, oder?</p>
<p>KLASSE</p>
<pre><code class="language-cpp">class Array
{
    private:
      int size;
      int* array;

    public:
      Array(int size)
      : size(size), array(new int[size])
      {}

      ~Array()
      {
        delete [] array;
      }

      int&amp; set(int index)
      {
        return array[index];
      }

      int get(int index)
      {
        return array[index];
      }
};
</code></pre>
<p>MAIN</p>
<pre><code class="language-cpp">int main(int argc, char *argv[])
{
    int i;
    cin &gt;&gt; i;
    Array a(i);

    for(int j = 0;j &lt; i;j++)
    {
        a.set(j) = j;    
    }
    for(int j = 0;j &lt; i;j++)
    {
        cout &lt;&lt; a.get(j) &lt;&lt; endl;    
    }    
    system(&quot;PAUSE&quot;);
    return EXIT_SUCCESS;
}
</code></pre>
<p>Ich habe ein Beispiel aus dem Internet abgeändert, was genau macht denn:</p>
<pre><code>Array(int size) : size(size), array(new int[size])
</code></pre>
<p>?!</p>
<p>Grüsse</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1377481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1377481</guid><dc:creator><![CDATA[MuuuhKuh]]></dc:creator><pubDate>Wed, 03 Oct 2007 20:51:14 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische Klasse| Methode verlngt Zeiger on Wed, 03 Oct 2007 21:27:09 GMT]]></title><description><![CDATA[<p>MuuuhKuh schrieb:</p>
<blockquote>
<p>Ich habe ein Beispiel aus dem Internet abgeändert, was genau macht denn:</p>
<pre><code>Array(int size) : size(size), array(new int[size])
</code></pre>
<p>?!</p>
</blockquote>
<p>Das initialisiert die Klassen-Variablen size und array. Es sind also praktisch Zuweisungen wie &quot;this-&gt;size=size; this-&gt;array=new int[size];&quot;. Im Grunde ist es aber keine Zuweisung, sondern der Konstruktor dieser Variablen wird aufgerufen mit den Parametern in den Klammern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1377492</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1377492</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Wed, 03 Oct 2007 21:27:09 GMT</pubDate></item></channel></rss>