<?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[Speicherbedarf dieser Implementierung]]></title><description><![CDATA[<p>Hallo, Cpp Community.</p>
<p>Ich möchte beliebig komplexe 2D-Objekte mit einem OOP Ansatz als abstrakte Klassen repräsentieren.</p>
<p>Es gibt eine abstrakte Basisklasse</p>
<pre><code class="language-cpp">CZeichenObjekt
</code></pre>
<p>Diese Basisklasse hat die rein virtuelle Methode</p>
<pre><code class="language-cpp">drawObject()
</code></pre>
<p>Nun kann man zum Beispiel eine Kreisklasse definieren, die von</p>
<pre><code class="language-cpp">CZeichenObjekt
</code></pre>
<p>erbt und</p>
<pre><code class="language-cpp">drawObject()
</code></pre>
<p>so implementiert, dass beim Aufruf ein Kreis gezeichnet wird.</p>
<p>Außerdem habe gibt es eine Liste mit Pointern auf die Basisklasse.<br />
In diese Liste kann man nun beliebige Zeichenobjekte reinpacken.<br />
Wenn alles gezeichnet werden soll, muss diese Liste nur durchlaufen werden und die</p>
<pre><code class="language-cpp">drawObject()
</code></pre>
<p>Methode aufgerufen werden. Also z.b.</p>
<pre><code class="language-cpp">meineZeichenObjektListe[i]-&gt;drawObject();
</code></pre>
<p>Meine Frage ist wie folgt:<br />
Ist diese Implementierung ineffizient, da jedes Zeichenobjekt in der Liste eine eigene</p>
<pre><code class="language-cpp">drawObject()
</code></pre>
<p>Methode hat?<br />
In meinem Programm wird es nur ca. 20 verschiedene Objekte geben, aber dafür sehr viele.</p>
<p>Alternativ habe ich mir überlegt, die Zeichenmethoden nicht in den Zeichenklassen zu definieren un wenn ich die Liste durchlaufe einfach die Objekte zu unterscheiden und je nach dem eine Zeichenmethode aufzurufen.</p>
<p>Somit wären die Zeichnemethoden nur einmal, zentral vorhanden.</p>
<p>Allerdings würde ich den ersten Ansatz irgendwie eleganter finden.</p>
<p>Kann mir jemand was dazu sagen?</p>
<p>MfG, Knaggy.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/250458/speicherbedarf-dieser-implementierung</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 01:31:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/250458.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 18 Sep 2009 11:58:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Speicherbedarf dieser Implementierung on Fri, 18 Sep 2009 11:58:37 GMT]]></title><description><![CDATA[<p>Hallo, Cpp Community.</p>
<p>Ich möchte beliebig komplexe 2D-Objekte mit einem OOP Ansatz als abstrakte Klassen repräsentieren.</p>
<p>Es gibt eine abstrakte Basisklasse</p>
<pre><code class="language-cpp">CZeichenObjekt
</code></pre>
<p>Diese Basisklasse hat die rein virtuelle Methode</p>
<pre><code class="language-cpp">drawObject()
</code></pre>
<p>Nun kann man zum Beispiel eine Kreisklasse definieren, die von</p>
<pre><code class="language-cpp">CZeichenObjekt
</code></pre>
<p>erbt und</p>
<pre><code class="language-cpp">drawObject()
</code></pre>
<p>so implementiert, dass beim Aufruf ein Kreis gezeichnet wird.</p>
<p>Außerdem habe gibt es eine Liste mit Pointern auf die Basisklasse.<br />
In diese Liste kann man nun beliebige Zeichenobjekte reinpacken.<br />
Wenn alles gezeichnet werden soll, muss diese Liste nur durchlaufen werden und die</p>
<pre><code class="language-cpp">drawObject()
</code></pre>
<p>Methode aufgerufen werden. Also z.b.</p>
<pre><code class="language-cpp">meineZeichenObjektListe[i]-&gt;drawObject();
</code></pre>
<p>Meine Frage ist wie folgt:<br />
Ist diese Implementierung ineffizient, da jedes Zeichenobjekt in der Liste eine eigene</p>
<pre><code class="language-cpp">drawObject()
</code></pre>
<p>Methode hat?<br />
In meinem Programm wird es nur ca. 20 verschiedene Objekte geben, aber dafür sehr viele.</p>
<p>Alternativ habe ich mir überlegt, die Zeichenmethoden nicht in den Zeichenklassen zu definieren un wenn ich die Liste durchlaufe einfach die Objekte zu unterscheiden und je nach dem eine Zeichenmethode aufzurufen.</p>
<p>Somit wären die Zeichnemethoden nur einmal, zentral vorhanden.</p>
<p>Allerdings würde ich den ersten Ansatz irgendwie eleganter finden.</p>
<p>Kann mir jemand was dazu sagen?</p>
<p>MfG, Knaggy.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1780962</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1780962</guid><dc:creator><![CDATA[Knaggy]]></dc:creator><pubDate>Fri, 18 Sep 2009 11:58:37 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherbedarf dieser Implementierung on Fri, 18 Sep 2009 12:02:39 GMT]]></title><description><![CDATA[<p>Knaggy schrieb:</p>
<blockquote>
<p>Ist diese Implementierung ineffizient, da jedes Zeichenobjekt in der Liste eine eigene</p>
<pre><code class="language-cpp">drawObject()
</code></pre>
<p>Methode hat?</p>
</blockquote>
<p>Nein, die Methode ist nur einmal pro Klasse vorhanden und wird nicht dupliziert. Nur die Attribute der Klasse werden für jedes Objekt instanziiert.</p>
<p>Dein Design ist gut und üblich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1780965</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1780965</guid><dc:creator><![CDATA[Registrierter Troll]]></dc:creator><pubDate>Fri, 18 Sep 2009 12:02:39 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherbedarf dieser Implementierung on Fri, 18 Sep 2009 12:11:18 GMT]]></title><description><![CDATA[<p>Ah, super vielen Dank.<br />
Jetzt habe ich die Gewissheit und kann es so umsetzen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1780973</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1780973</guid><dc:creator><![CDATA[Knaggy]]></dc:creator><pubDate>Fri, 18 Sep 2009 12:11:18 GMT</pubDate></item></channel></rss>