<?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 von Objekten einer Klasse - Doppelpointer]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>ich habe folgende Aufgabe vor mir: Ich habe eine Basisklasse &quot;Form&quot; geschrieben, die eine einzige Methode, nämlich &quot;virtual double flaeche();&quot; enthaelt. Von dieser Klasse wurden 3 Klassen abgeleitet &quot;Dreieck&quot;, &quot;Rechteck&quot; und &quot;Kreis&quot;. Bei allen dreien wurde die virtuelle Flaechen-Funktion fuer den entsprechenden Fall angepasst und überschrieben.<br />
Nun ist die Aufgabe, in der main ein Array des Typs Form zu erzeugen, in dem sich verschiedene geometrische Objekte befinden (Dreiecke, Rechtecke, Kreise) und anschließend die Gesamtflaeche dieses Arrays auszugeben.<br />
Ich habe meine Flaechenfunktionen in der main bereits getestet, sie funktionieren für jede abgeleitete Klasse.<br />
Das Array wird wohl über folgende Zeile erzeugt:<br />
Form** Array;</p>
<p>Ich verstehe nun leider nicht, wie ich dieses Array befülle, bzw wie ich generell damit umgehen soll. Kennt sich hier jemand aus und kann mir helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/330480/array-von-objekten-einer-klasse-doppelpointer</link><generator>RSS for Node</generator><lastBuildDate>Fri, 03 Jul 2026 07:09:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/330480.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 12 Jan 2015 15:50:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array von Objekten einer Klasse - Doppelpointer on Mon, 12 Jan 2015 15:50:49 GMT]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>ich habe folgende Aufgabe vor mir: Ich habe eine Basisklasse &quot;Form&quot; geschrieben, die eine einzige Methode, nämlich &quot;virtual double flaeche();&quot; enthaelt. Von dieser Klasse wurden 3 Klassen abgeleitet &quot;Dreieck&quot;, &quot;Rechteck&quot; und &quot;Kreis&quot;. Bei allen dreien wurde die virtuelle Flaechen-Funktion fuer den entsprechenden Fall angepasst und überschrieben.<br />
Nun ist die Aufgabe, in der main ein Array des Typs Form zu erzeugen, in dem sich verschiedene geometrische Objekte befinden (Dreiecke, Rechtecke, Kreise) und anschließend die Gesamtflaeche dieses Arrays auszugeben.<br />
Ich habe meine Flaechenfunktionen in der main bereits getestet, sie funktionieren für jede abgeleitete Klasse.<br />
Das Array wird wohl über folgende Zeile erzeugt:<br />
Form** Array;</p>
<p>Ich verstehe nun leider nicht, wie ich dieses Array befülle, bzw wie ich generell damit umgehen soll. Kennt sich hier jemand aus und kann mir helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2437161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2437161</guid><dc:creator><![CDATA[Skyfall91]]></dc:creator><pubDate>Mon, 12 Jan 2015 15:50:49 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten einer Klasse - Doppelpointer on Mon, 12 Jan 2015 16:01:29 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>den schweren Teil hast du doch schon.<br />
Das Array kann nicht vom 'Typ Form' sein, sondern muss aus Zeigern auf Form bestehen. Also sowas:</p>
<pre><code>Form* dasArray[123];
// An Position 99 soll ein Dreieck sein
dasArray[99] = new Dreieck(...);
// Zugriff ganz normal
double d = dasArray[99]-&gt;flaeche();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2437163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2437163</guid><dc:creator><![CDATA[Jockelx]]></dc:creator><pubDate>Mon, 12 Jan 2015 16:01:29 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten einer Klasse - Doppelpointer on Mon, 12 Jan 2015 16:12:01 GMT]]></title><description><![CDATA[<p>Danke für die schnelle Antwort <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="🙂"
    /><br />
Hm, mir wurde in der Uni gesagt man bräuchte einen Doppelpointer <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="😕"
    /> Vll hätte ich erwähnen sollen, dass die Basisklasse, sowie jede abgeleitete Klasse eine eigene .cpp und eine eigene .h Datei besitzen. Das gewünschte Programm mit dem Array usw. steht allerdings komplett in der main()Funktion.<br />
Wenn ich das ganze jetzt mit einem normalen Pointer (wie in deinem Vorschlag) mache bringt er mir momentan immer einen Fehler bei dem Zugriff, sprich er findet garkeine Flaechenfunktion <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2437165</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2437165</guid><dc:creator><![CDATA[Skyfall91]]></dc:creator><pubDate>Mon, 12 Jan 2015 16:12:01 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten einer Klasse - Doppelpointer on Mon, 12 Jan 2015 16:15:54 GMT]]></title><description><![CDATA[<p>Also eigentlich brauchst du einen Vector <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="😉"
    /><br />
Den Doppel-Pointer brauchst du nur, wenn du den vector (warum auch immer) nicht nehmen darfst und ein Array dynamischer Länge brauchst.</p>
<p>Sag mal den genauen Fehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2437166</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2437166</guid><dc:creator><![CDATA[Jockelx]]></dc:creator><pubDate>Mon, 12 Jan 2015 16:15:54 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten einer Klasse - Doppelpointer on Mon, 12 Jan 2015 16:19:15 GMT]]></title><description><![CDATA[<p>Ah ich nehme alles zurück <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /> Habs hinbekommen mit dem normalen Vektor, danke! <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="🙂"
    /> Vermutlich wird das Programm noch dynamisch erweitert, sonst hätte man mir nicht diesen Lösungsvorschlag gegeben denke ich^^ Hast du eine vorstellung wie das dann aussehen würde?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2437167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2437167</guid><dc:creator><![CDATA[Skyfall91]]></dc:creator><pubDate>Mon, 12 Jan 2015 16:19:15 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten einer Klasse - Doppelpointer on Mon, 12 Jan 2015 16:24:41 GMT]]></title><description><![CDATA[<p>Damit wir nicht aneinander vorbei reden: der 'normale vector' ist dieser:</p>
<pre><code>std::vector&lt;Form*&gt;
</code></pre>
<p>Dynamisches Array wäre sowas:</p>
<pre><code>Form** dynArray = new Form*[2];
</code></pre>
<p>Und die ganze Deleterei nicht vergessen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2437169</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2437169</guid><dc:creator><![CDATA[Jockelx]]></dc:creator><pubDate>Mon, 12 Jan 2015 16:24:41 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten einer Klasse - Doppelpointer on Mon, 12 Jan 2015 16:31:39 GMT]]></title><description><![CDATA[<p>Sehr nice, jetzt passts auch dynamisch <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="🙂"
    /> Vielen Dank für deine Hilfe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> Eine Kleinigkeit noch, bei dem delete Befehl schreibe ich egal ob doppelpointer oder einfacher &quot;delete[] array;&quot; oder? Ein Fehler zeigt er mir dabei zumindest nicht an <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/2437171</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2437171</guid><dc:creator><![CDATA[Skyfall91]]></dc:creator><pubDate>Mon, 12 Jan 2015 16:31:39 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten einer Klasse - Doppelpointer on Mon, 12 Jan 2015 16:43:48 GMT]]></title><description><![CDATA[<p>Nee, das ist halt alles Mist so mit dem dynamischen Array und das wird man euch hoffentlich auch noch irgendwann sagen.<br />
(So nach dem Motto erstmal den schlechten Weg lernen, um dann die Vorteile der Container-Klassen zu erkennen).</p>
<p>Zu jedem new gehört ein delete (*). Hier also:</p>
<pre><code>size_t size = 5;
// Speicher holen:
Form** dynArray = new Form*[size];
for(i=0; i&lt;size;++i)
  dynArray[i] = new Irgendwas()
// Speicher freigeben:
for(i=0; i&lt;size;++i)
  delete dynArray[i];
delete[] dynArray;
</code></pre>
<p>(*)Edit: und zu jedem new[] ein delete[]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2437174</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2437174</guid><dc:creator><![CDATA[Jockelx]]></dc:creator><pubDate>Mon, 12 Jan 2015 16:43:48 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten einer Klasse - Doppelpointer on Mon, 12 Jan 2015 16:49:07 GMT]]></title><description><![CDATA[<p>Skyfall91 schrieb:</p>
<blockquote>
<p>Ein Fehler zeigt er mir dabei zumindest nicht an <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>
</blockquote>
<p>Und genau das ist die Gefahr dabei. Nur weil kein Fehler gemeldet wird, heisst das nicht, dass keiner existiert.</p>
<p>Spätestens wenn dein programm länger läuft und/oder immer weiter viel Speicher anfordert (und eigentlich wieder freigeben soll) wird dir dieser Fehler zum Verhängnis.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2437176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2437176</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Mon, 12 Jan 2015 16:49:07 GMT</pubDate></item></channel></rss>