<?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[Array einer abstrakten Klasse]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin gerade dabei mir ich C++ einzuarbeiten und schreibe einfaches Grafikprogramm.<br />
Es existieren bis jetzt 3 Klassen eine abstrakte Basisklasse: NodeC</p>
<pre><code class="language-cpp">class NodeC{
	public:
		virtual void draw()=0;
}
</code></pre>
<p>und zwei weitere klassen PolygonC und TransC, die von dieser abgeleitet sind.</p>
<pre><code class="language-cpp">class PolygonC: public NodeC{	  
	public:
		PolygonC();
		~PolygonC();

		void draw();
};

class TransC: public NodeC{
	public:
		TransC();
		~TransC();

		void draw();
};
</code></pre>
<p>so nun will ich ein array errstellen welches objekte beider klassen speichern kann. dann sollen die elemente des arrays abgearbeitet werden und die jeweilige draw() funktion aufgerufen werden.</p>
<p>also habe ich sowas in meiner funktion:</p>
<pre><code class="language-cpp">NodeC* nodes[100];

PolygonC a;
nodes[0]= &amp;a;

TransC b;
nodes[1]= &amp;b;

nodes[0]-&gt;draw();
nodes[1]-&gt;draw();
</code></pre>
<p>Das funktioniert auch wunderbar, aber nur solange, wie die objekte a und b exisitieren. Ist ja auch klar, denn das Array speichert ja nur die pointer zu den Objekten.</p>
<p>So, aber wie kann ich nun die objekte in dem array speichern und dennoch auf die klassenspezifische draw() funktion zugreifen?</p>
<p>Viele Grüße<br />
Frank</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/227251/array-einer-abstrakten-klasse</link><generator>RSS for Node</generator><lastBuildDate>Wed, 30 Sep 2026 04:03:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/227251.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 13 Nov 2008 00:05:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array einer abstrakten Klasse on Thu, 13 Nov 2008 00:05:39 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin gerade dabei mir ich C++ einzuarbeiten und schreibe einfaches Grafikprogramm.<br />
Es existieren bis jetzt 3 Klassen eine abstrakte Basisklasse: NodeC</p>
<pre><code class="language-cpp">class NodeC{
	public:
		virtual void draw()=0;
}
</code></pre>
<p>und zwei weitere klassen PolygonC und TransC, die von dieser abgeleitet sind.</p>
<pre><code class="language-cpp">class PolygonC: public NodeC{	  
	public:
		PolygonC();
		~PolygonC();

		void draw();
};

class TransC: public NodeC{
	public:
		TransC();
		~TransC();

		void draw();
};
</code></pre>
<p>so nun will ich ein array errstellen welches objekte beider klassen speichern kann. dann sollen die elemente des arrays abgearbeitet werden und die jeweilige draw() funktion aufgerufen werden.</p>
<p>also habe ich sowas in meiner funktion:</p>
<pre><code class="language-cpp">NodeC* nodes[100];

PolygonC a;
nodes[0]= &amp;a;

TransC b;
nodes[1]= &amp;b;

nodes[0]-&gt;draw();
nodes[1]-&gt;draw();
</code></pre>
<p>Das funktioniert auch wunderbar, aber nur solange, wie die objekte a und b exisitieren. Ist ja auch klar, denn das Array speichert ja nur die pointer zu den Objekten.</p>
<p>So, aber wie kann ich nun die objekte in dem array speichern und dennoch auf die klassenspezifische draw() funktion zugreifen?</p>
<p>Viele Grüße<br />
Frank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1613792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1613792</guid><dc:creator><![CDATA[frankne]]></dc:creator><pubDate>Thu, 13 Nov 2008 00:05:39 GMT</pubDate></item><item><title><![CDATA[Reply to Array einer abstrakten Klasse on Thu, 13 Nov 2008 01:12:53 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">NodeC **array;
array = new NodeC*[100];
aray[i] = new NodeC();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1613795</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1613795</guid><dc:creator><![CDATA[muh]]></dc:creator><pubDate>Thu, 13 Nov 2008 01:12:53 GMT</pubDate></item><item><title><![CDATA[Reply to Array einer abstrakten Klasse on Thu, 13 Nov 2008 07:34:08 GMT]]></title><description><![CDATA[<p>frankne schrieb:</p>
<blockquote>
<p>So, aber wie kann ich nun die objekte in dem array speichern und dennoch auf die klassenspezifische draw() funktion zugreifen?</p>
</blockquote>
<p>Ich zeige dir hier mal die üblichen C++ Wege, nur damit du dies schon gesehen hast:</p>
<p>1. Es gibt bessere Alternativen als Arrays unter C++ (Sei es std::vector oder falls dein Compiler TR1 unterstützt std::tr1::array)<br />
2. Alle Basisklassen sollten einen virtuellen Destruktor besitzen, passe deine Klasse bitte wie folgt an:</p>
<pre><code class="language-cpp">class NodeC
{
    public:
        virtual void draw()=0;
        virtual ~NodeC() {}; // Bitte in Basisklassen virtuellen Destruktor vorsehen
};
</code></pre>
<p>Da vector auf eigentlich allen Systemen bekannt ist, nehme ich diesen erst einmal als Beispiel (vector kann im gegensatz zum Array und std::tr1::array dynamisch wachsen):</p>
<pre><code class="language-cpp">// Ungetestet, kann sein das ich irgendwo einen Fehler habe, dann einfach melden...

#include &lt;vector&gt;
// #include &quot;Include deiner Klassen&quot;...

int main()
{
    std::vector&lt;NodeC*&gt; nodes;

    // Füllen des vector
    // Jedes push_back hängt ein Element am Ende an:
    nodes.push_back(new PolygonC());
    nodes.push_back(new TransC());

    // Verwendung
    // Hier zeige ich zwei Varianten, die erste wirst du als Anfänger besser
    // verstehen.

    // Verwendung, Variante 1: Über den Index
    for(int i=0, ende=nodes.size(); i&lt;ende; ++i)
        nodes[i]-&gt;draw();

    // Verwendung, Variante 2: Über die Iteratoren
    // Ich werde hier keine komplette Iteratoreinführung schreiben, stell dir
    // einen Iterator als ein Element vor das die Position eines Containers
    // (wie std::vector) hält. Vorteil hierbei ist, das es auch mit Containern
    // funktioniert, die keinen Wahlfreien Zugriff per Index erlauben:
    for(std::vector&lt;NodeC*&gt;::iterator it=nodes.begin(), ende=nodes.end();
      it!=end; ++it)
        it-&gt;draw();

    // Wichtig: Alle Elemente die mit new Alloziert werden, müssen mit delete
    // Freigegeben werden!
    for(int i=0, ende=nodes.size(); i&lt;ende; ++i)
        delete nodes[i];
}
</code></pre>
<p>Es gibt auch Wege wie die Freigabe automatisiert werden kann, aber verdaue erstmal den Code...</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1613846</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1613846</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Thu, 13 Nov 2008 07:34:08 GMT</pubDate></item><item><title><![CDATA[Reply to Array einer abstrakten Klasse on Thu, 13 Nov 2008 07:36:47 GMT]]></title><description><![CDATA[<p>muh schrieb:</p>
<blockquote>
<pre><code class="language-cpp">NodeC **array;
array = new NodeC*[100];
aray[i] = new NodeC();
</code></pre>
</blockquote>
<p>Und hier musst du nun noch mehrere delete Aufrufe (Für die Einzelelemente) und einmal delete[] für das array unterbringen...</p>
<p>Irgendwie hat hier jemand zuviel C, und zuwenig C++ im Hinterkopf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1613848</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1613848</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Thu, 13 Nov 2008 07:36:47 GMT</pubDate></item><item><title><![CDATA[Reply to Array einer abstrakten Klasse on Thu, 13 Nov 2008 09:08:46 GMT]]></title><description><![CDATA[<p>Hallo André,</p>
<p>vielen Dank für deine Anwort! Jetzt habe ich aber noch ein Problem: bisher habe ich ein Objekt erstellt und dann Eigenschaften über den istream operator hinzugefügt etwa so:</p>
<pre><code class="language-cpp">CircleC a;
iss&gt;&gt;a;
node[0]=&amp;a;
</code></pre>
<p>wie kann ich nun auf die Elemente im Vector den istream operator anwenden?</p>
<p>Cu Frank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1613895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1613895</guid><dc:creator><![CDATA[frankne]]></dc:creator><pubDate>Thu, 13 Nov 2008 09:08:46 GMT</pubDate></item><item><title><![CDATA[Reply to Array einer abstrakten Klasse on Thu, 13 Nov 2008 09:11:17 GMT]]></title><description><![CDATA[<p>Auf einen std::vector kannst du das äquivalent anwenden.. (Unterstützt die []-Notation).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1613898</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1613898</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 13 Nov 2008 09:11:17 GMT</pubDate></item><item><title><![CDATA[Reply to Array einer abstrakten Klasse on Thu, 13 Nov 2008 09:42:53 GMT]]></title><description><![CDATA[<p>frankne schrieb:</p>
<blockquote>
<p>Jetzt habe ich aber noch ein Problem: bisher habe ich ein Objekt erstellt und dann Eigenschaften über den istream operator hinzugefügt etwa so:</p>
</blockquote>
<p>Um Polymorphie verwenden zu können benötigst du Zeiger oder Referenzen. Daher gehe ich den Fall mal mit der dynamischen Speicherverwaltung durch:</p>
<p>Dein Beispiel für ein Objekt</p>
<pre><code class="language-cpp">CircleC a;
iss&gt;&gt;a;
node[0]=&amp;a;
</code></pre>
<p>Dein Beispiel, angepasst auf dynamische Speicherverwaltung und Zeigerarithmetik):</p>
<pre><code class="language-cpp">CircleC* a = new CircleC();
iss &gt;&gt; *a;
nodes.push_back(a);
</code></pre>
<p>Ich hoffe jetzt keinen Fehler gemacht zu haben, da ich (warum auch immer) noch immer tierisch Müde bin...</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1613925</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1613925</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Thu, 13 Nov 2008 09:42:53 GMT</pubDate></item><item><title><![CDATA[Reply to Array einer abstrakten Klasse on Thu, 13 Nov 2008 12:22:00 GMT]]></title><description><![CDATA[<p>asc schrieb:</p>
<blockquote>
<pre><code class="language-cpp">// Verwendung
    // Hier zeige ich zwei Varianten, die erste wirst du als Anfänger besser
    // verstehen.

    // Verwendung, Variante 1: Über den Index
    for(int i=0, ende=nodes.size(); i&lt;ende; ++i)
        nodes[i]-&gt;draw();

    // Verwendung, Variante 2: Über die Iteratoren
    // Ich werde hier keine komplette Iteratoreinführung schreiben, stell dir
    // einen Iterator als ein Element vor das die Position eines Containers
    // (wie std::vector) hält. Vorteil hierbei ist, das es auch mit Containern
    // funktioniert, die keinen Wahlfreien Zugriff per Index erlauben:
    for(std::vector&lt;NodeC*&gt;::iterator it=nodes.begin(), ende=nodes.end();
      it!=end; ++it)
        it-&gt;draw();

}
</code></pre>
</blockquote>
<p>Wenn schon, denn schon..... <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>Variante 3: // prefer algorithms calls to hand-written loops (siehe: Scott Meyers, Effective STL, Item 43)</p>
<pre><code class="language-cpp">for_each(nodes.begin(), nodes.end(), mem_fun(&amp;Shape::draw));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1614052</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1614052</guid><dc:creator><![CDATA[jencas]]></dc:creator><pubDate>Thu, 13 Nov 2008 12:22:00 GMT</pubDate></item><item><title><![CDATA[Reply to Array einer abstrakten Klasse on Thu, 13 Nov 2008 12:47:56 GMT]]></title><description><![CDATA[<p>jencas schrieb:</p>
<blockquote>
<p>Variante 3: // prefer algorithms calls to hand-written loops (siehe: Scott Meyers, Effective STL, Item 43)</p>
</blockquote>
<p>Das Item ist mir bekannt, nur das ich mem_fun &amp; Co grundsätzlich nicht einsetze und boost::bind/std::tr1::bind noch nicht überall verfügbar sind.</p>
<p>Zumal der OT erstmal das Konzept der Iteratoren grob verstehen sollte bevor ich ihn mit den Algorithmen plage <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>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1614073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1614073</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Thu, 13 Nov 2008 12:47:56 GMT</pubDate></item><item><title><![CDATA[Reply to Array einer abstrakten Klasse on Thu, 13 Nov 2008 12:55:15 GMT]]></title><description><![CDATA[<p>asc schrieb:</p>
<blockquote>
<p>Das Item ist mir bekannt, nur das ich mem_fun &amp; Co grundsätzlich nicht einsetze und boost::bind/std::tr1::bind noch nicht überall verfügbar sind.</p>
</blockquote>
<p>Naja, zumindest diese Teile von Boost sind überall verfügbar wo der Entwickler einen USB-Anschluss/CD-Laufwerk/Internetanschluss zur Verfügung hat und Dateien ablegen darf.</p>
<p>Dass man es in der Praxis trotzdem nicht jederzeit nutzen kann, ist mir allerdings klar <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/1614083</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1614083</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 13 Nov 2008 12:55:15 GMT</pubDate></item><item><title><![CDATA[Reply to Array einer abstrakten Klasse on Thu, 13 Nov 2008 13:28:07 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>sorry habe mich schlecht ausgedruekt,meine eigentliche frage zum input operator war:<br />
wenn ich das hier habe</p>
<pre><code class="language-cpp">nodes.push_back(new PolygonC());
</code></pre>
<p>wie kann ich mit dem inputoperator auf nodes[0] zugreifen?<br />
ich dachte das hier funktioniert, aber tuts nich</p>
<pre><code class="language-cpp">iss&gt;&gt;nodes[0];
</code></pre>
<p>cu frank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1614115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1614115</guid><dc:creator><![CDATA[frankne]]></dc:creator><pubDate>Thu, 13 Nov 2008 13:28:07 GMT</pubDate></item><item><title><![CDATA[Reply to Array einer abstrakten Klasse on Thu, 13 Nov 2008 13:51:40 GMT]]></title><description><![CDATA[<p>frankne schrieb:</p>
<blockquote>
<p>Hi,</p>
<p>sorry habe mich schlecht ausgedruekt,meine eigentliche frage zum input operator war:<br />
wenn ich das hier habe</p>
<pre><code class="language-cpp">nodes.push_back(new PolygonC());
</code></pre>
<p>wie kann ich mit dem inputoperator auf nodes[0] zugreifen?<br />
ich dachte das hier funktioniert, aber tuts nich</p>
<pre><code class="language-cpp">iss&gt;&gt;nodes[0];
</code></pre>
<p>cu frank</p>
</blockquote>
<p>Neee, das geht so nicht. Schau Dir mal das Beispiel hier an: <a href="http://www.c-plusplus.net/forum/viewtopic-var-p-is-1613800.html#1613800" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-p-is-1613800.html#1613800</a> (im unteren Teil des Beitrags!)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1614129</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1614129</guid><dc:creator><![CDATA[jencas]]></dc:creator><pubDate>Thu, 13 Nov 2008 13:51:40 GMT</pubDate></item><item><title><![CDATA[Reply to Array einer abstrakten Klasse on Thu, 13 Nov 2008 14:21:03 GMT]]></title><description><![CDATA[<p>frankne schrieb:</p>
<blockquote>
<pre><code class="language-cpp">nodes.push_back(new PolygonC());
    ...
    iss&gt;&gt;nodes[0];
</code></pre>
</blockquote>
<p>nodes[0] gibt, da du Zeiger hälst auch einen eben solchen zurück. Und ich nehme einfach mal an das dein Operator für Objekte, nicht für Zeiger definitert ist <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="😉"
    /> (Zudem würde ich diesen wenn für den Basisklassenzeiger definieren, und diesen eine virtuelle Funktion aufrufen lassen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1614156</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1614156</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Thu, 13 Nov 2008 14:21:03 GMT</pubDate></item><item><title><![CDATA[Reply to Array einer abstrakten Klasse on Thu, 13 Nov 2008 15:55:32 GMT]]></title><description><![CDATA[<p>danke für die hilfe, aber bin ich etwas durch durcheinander. du meinst ich soll</p>
<pre><code class="language-cpp">iss&gt;&gt;*nodes[0]
</code></pre>
<p>verwenden und dann eine virtuelle funktion des operator&gt;&gt; in der basisklasse NodeC zur verfügungstellen?<br />
etwa so?</p>
<pre><code class="language-cpp">class NodeC{
	public:
		virtual void draw()=0;
		virtual istream&amp; operator&gt;&gt;(istream&amp; s, NodeC&amp; p)=0;
		virtual ~NodeC()=0;	
};
</code></pre>
<p>da kommt der fehler:</p>
<blockquote>
<p>NodeC.h `std::istream&amp; NodeC::operator&gt;&gt;(std::istream&amp;, NodeC&amp;)' must take exactly one argument</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1614220</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1614220</guid><dc:creator><![CDATA[frankne]]></dc:creator><pubDate>Thu, 13 Nov 2008 15:55:32 GMT</pubDate></item><item><title><![CDATA[Reply to Array einer abstrakten Klasse on Thu, 13 Nov 2008 18:48:02 GMT]]></title><description><![CDATA[<p>frankne schrieb:</p>
<blockquote>
<pre><code class="language-cpp">nodes.push_back(new PolygonC());
</code></pre>
</blockquote>
<p>Bist du sicher, dass du die Objekte im Vector dynamisch speichern willst? Container nehmen dir unter anderem diese Arbeit ab. Falls Objekte anstelle von Zeigern auch reichen (weil zum Beispiel der Typ vollständig bekannt ist), empfehle ich sie dir auch. So musst du auf jeden Fall immer an <code>delete</code> denken.</p>
<p>frankne schrieb:</p>
<blockquote>
<p>etwa so?<br />
[...]<br />
da kommt der fehler: [...]</p>
</blockquote>
<p>Ich würde den <code>operator&gt;&gt;</code> als globale Funktion deklarieren. Wenn du ihn in der Klasse deklarierst, ist das erste Argument implizit eine Instanz dieser Klasse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1614311</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1614311</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 13 Nov 2008 18:48:02 GMT</pubDate></item><item><title><![CDATA[Reply to Array einer abstrakten Klasse on Thu, 13 Nov 2008 20:51:53 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Bist du sicher, dass du die Objekte im Vector dynamisch speichern willst?</p>
</blockquote>
<p>Nach seiner Beschreibung würde ich sagen: Ja, da er explizit unterschiedliche Objekte ablegt.</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1614389</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1614389</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Thu, 13 Nov 2008 20:51:53 GMT</pubDate></item><item><title><![CDATA[Reply to Array einer abstrakten Klasse on Thu, 13 Nov 2008 21:19:46 GMT]]></title><description><![CDATA[<p>asc schrieb:</p>
<blockquote>
<p>Nach seiner Beschreibung würde ich sagen: Ja, da er explizit unterschiedliche Objekte ablegt.</p>
</blockquote>
<p>Stimmt, da hast du Recht. Ich dachte nicht mehr daran, dass Polymorphie im Spiel ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1614408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1614408</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 13 Nov 2008 21:19:46 GMT</pubDate></item><item><title><![CDATA[Reply to Array einer abstrakten Klasse on Thu, 13 Nov 2008 21:24:08 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>asc schrieb:</p>
<blockquote>
<p>Nach seiner Beschreibung würde ich sagen: Ja, da er explizit unterschiedliche Objekte ablegt.</p>
</blockquote>
<p>Stimmt, da hast du Recht. Ich dachte nicht mehr daran, dass Polymorphie im Spiel ist.</p>
</blockquote>
<p>Wobei ich die Performance hintenan stelle und in Vektoren trotz allen &quot;Overheads&quot; lieber die shared_ptr verwende <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>Aber ich glaube wir sollten den OT damit erst belasten wenn er den Rest komplett verarbeitet hat...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1614411</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1614411</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Thu, 13 Nov 2008 21:24:08 GMT</pubDate></item></channel></rss>