<?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[Objekt mit Nachfolge Objekt (Zeiger)]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgendes Problem:<br />
ich habe eine Klasse (element) von der verschiedene andere Klassen abgeleitet werden. (element1, element2 z.bsp.)</p>
<p>jetzt sollen diese Elemente aneinandergereiht werden und dazu habe ich mir folgendes ausgedacht:<br />
in element (also der abstracten grundklasse) steht eine membervariable die einen zeiger auf das nächste objekt beinhalten soll.</p>
<p>Wenn diese jetzt so deklariert ist:</p>
<pre><code class="language-cpp">element* nextElement
</code></pre>
<p>, kann ich dann diesen Zeiger auch auf derivate von element zeigen lassen?<br />
Oder soll ich einen</p>
<pre><code class="language-cpp">void* nextElement
</code></pre>
<p>nehmen?</p>
<p>Weiterhin habe ich dann eine</p>
<pre><code class="language-cpp">element* getNextElement()
</code></pre>
<p>funktion die mir den Zeiger auf das nächste element gibt, nur wie krieg ich jetzt das Objekt zu dem Zeiger?<br />
derzeit habe ich das so gelöst, ist aber sehr umständlich:</p>
<pre><code class="language-cpp">element myEle = new element();
	element myEle2 = new element();
	myEle2.setColorRed(189);
	myEle.setNextElement(&amp;myEle2);
	element* bla = myEle.getNextElement();
	element bla2 = *bla;
	cout &lt;&lt; bla2.getColorRed() &lt;&lt; endl;
</code></pre>
<p>Wie komme ich direkter an das getColorRed() von myEle2 über myEle ran? weil so find ich das ein wenig umständlich...</p>
<p>Ich hoffe das war verständlich was ich da zusammengewurschtelt habe <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 />
Danke fürs durchlesen <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>lG Jan</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/238481/objekt-mit-nachfolge-objekt-zeiger</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 00:49:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/238481.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 11 Apr 2009 07:51:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Objekt mit Nachfolge Objekt (Zeiger) on Sat, 11 Apr 2009 07:51:13 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgendes Problem:<br />
ich habe eine Klasse (element) von der verschiedene andere Klassen abgeleitet werden. (element1, element2 z.bsp.)</p>
<p>jetzt sollen diese Elemente aneinandergereiht werden und dazu habe ich mir folgendes ausgedacht:<br />
in element (also der abstracten grundklasse) steht eine membervariable die einen zeiger auf das nächste objekt beinhalten soll.</p>
<p>Wenn diese jetzt so deklariert ist:</p>
<pre><code class="language-cpp">element* nextElement
</code></pre>
<p>, kann ich dann diesen Zeiger auch auf derivate von element zeigen lassen?<br />
Oder soll ich einen</p>
<pre><code class="language-cpp">void* nextElement
</code></pre>
<p>nehmen?</p>
<p>Weiterhin habe ich dann eine</p>
<pre><code class="language-cpp">element* getNextElement()
</code></pre>
<p>funktion die mir den Zeiger auf das nächste element gibt, nur wie krieg ich jetzt das Objekt zu dem Zeiger?<br />
derzeit habe ich das so gelöst, ist aber sehr umständlich:</p>
<pre><code class="language-cpp">element myEle = new element();
	element myEle2 = new element();
	myEle2.setColorRed(189);
	myEle.setNextElement(&amp;myEle2);
	element* bla = myEle.getNextElement();
	element bla2 = *bla;
	cout &lt;&lt; bla2.getColorRed() &lt;&lt; endl;
</code></pre>
<p>Wie komme ich direkter an das getColorRed() von myEle2 über myEle ran? weil so find ich das ein wenig umständlich...</p>
<p>Ich hoffe das war verständlich was ich da zusammengewurschtelt habe <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 />
Danke fürs durchlesen <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>lG Jan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1694259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1694259</guid><dc:creator><![CDATA[GreenDelta]]></dc:creator><pubDate>Sat, 11 Apr 2009 07:51:13 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt mit Nachfolge Objekt (Zeiger) on Sat, 11 Apr 2009 08:26:32 GMT]]></title><description><![CDATA[<p>nimm am besten verkettete listen aus der stl: <code>std::list</code></p>
<p>und dazu dann noch virtuelle Funktionen.<br />
Das Funktioniert so: die Funktionen aus element (Basisklasse) werden mit einem <code>virtual</code> versehen, die in den ableitungen (element1, element2) neu definiert werden sollen.<br />
Dann ist es egal von welchem typ die zeiger sind, es wird immer die richtige funktion aufgerufen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1694263</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1694263</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 11 Apr 2009 08:26:32 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt mit Nachfolge Objekt (Zeiger) on Sat, 11 Apr 2009 10:29:34 GMT]]></title><description><![CDATA[<p>Ich versuch das jetzt grade so:</p>
<pre><code class="language-cpp">element e1 = new element();
	e1.setColorRed(1);
	element e2 = new element();
	e2.setColorRed(2);
	element e3 = new element();
	e3.setColorRed(3);

	std::list&lt;element&gt; elelist;

	elelist.push_back(e1);
	elelist.push_back(e2);
	elelist.push_back(e3);
	cout &lt;&lt; elelist.begin().getColorRed();
</code></pre>
<p>jetzt krieg ich aber komischer weise diesen Fehler:</p>
<blockquote>
<p>g++ -c `wx-config --cxxflags` ../src/main.cpp<br />
../src/main.cpp: In constructor »MyFrame::MyFrame(wxFrame*, const wxString&amp;)«:<br />
../src/main.cpp:56: Fehler: »list« ist kein Element von »std«<br />
../src/main.cpp:56: Fehler: expected primary-expression before »&gt;« token<br />
../src/main.cpp:56: Fehler: »elelist« wurde in diesem Gültigkeitsbereich nicht definiert<br />
make: *** [main.o] Fehler 1</p>
</blockquote>
<p>Was is da los? überall steht std::list ... warum gibts das jetzt nicht? oO</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1694333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1694333</guid><dc:creator><![CDATA[GreenDelta]]></dc:creator><pubDate>Sat, 11 Apr 2009 10:29:34 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt mit Nachfolge Objekt (Zeiger) on Sat, 11 Apr 2009 10:35:53 GMT]]></title><description><![CDATA[<p>1. #include &lt;list&gt;<br />
2. std::list&lt;element*&gt; elelist;<br />
3. wo ein new ist, soll auch ein delete sein.<br />
4. Zugriff erfolgt über Iteratoren:<br />
std::list&lt;element*&gt;::const_iterator it = elelist.begin();<br />
element* e = *it;<br />
std::cout &lt;&lt; e-&gt;getColorRed();</p>
<p>(Ist ein wenig aufwändig geschrieben, kannst Du auch abkürzen.</p>
<p>Simon</p>
<p>Edit:<br />
Übrigens muss auch e1-&gt;setColorRed(1); anstelle vone1.setColorRed(1); stehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1694338</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1694338</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Sat, 11 Apr 2009 10:35:53 GMT</pubDate></item></channel></rss>