<?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[Problem mit Iteratoren]]></title><description><![CDATA[<p>Ich habe verschiedene Klassen die von einem Objekt vererbt sind. Eine Liste aus verschiedenen Objekten soll nach aktiven Objekten durchsucht werden und den Typ des aktiven Objekts zurückgeben.</p>
<p>Soweit ich weiss kann man mit dem Iterator direkt auf Funktionen zugreifen, leider muss ich wegen der Vererbung Objekt-Pointer benutzen, deshalb gibt er mir immer folgende Fehlermeldung aus:</p>
<p>&quot;error C2227: left of '-&gt;getName' must point to class/struct/union&quot;</p>
<pre><code class="language-cpp">class Objekt
{
...
bool istAktiv() {...}
virtual std::string getTyp() = 0;
}

class ObjektA : public Objekt
{
virtual std::string getTyp() { return &quot;Typ A&quot;; }
...
}

...
</code></pre>
<pre><code class="language-cpp">std::vector&lt;Objekt*&gt;::iterator it;
it = ObjektContainer.begin();
while (it != ObjektContainer.end())
{
         if(it-&gt;istAktiv() == true)
	 {
	    return it-&gt;getName();
	 }
it++;
}
</code></pre>
<p>Wie kann ich auf die Funktionen zugreifen? Liegt es daran dass ich einen Pointer auf einen Pointer habe (Iterator ist ein Pointer der auf einen Pointer des Objekts zeigt)?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/222659/problem-mit-iteratoren</link><generator>RSS for Node</generator><lastBuildDate>Mon, 05 Oct 2026 01:19:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/222659.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 15 Sep 2008 19:28:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit Iteratoren on Mon, 15 Sep 2008 19:28:32 GMT]]></title><description><![CDATA[<p>Ich habe verschiedene Klassen die von einem Objekt vererbt sind. Eine Liste aus verschiedenen Objekten soll nach aktiven Objekten durchsucht werden und den Typ des aktiven Objekts zurückgeben.</p>
<p>Soweit ich weiss kann man mit dem Iterator direkt auf Funktionen zugreifen, leider muss ich wegen der Vererbung Objekt-Pointer benutzen, deshalb gibt er mir immer folgende Fehlermeldung aus:</p>
<p>&quot;error C2227: left of '-&gt;getName' must point to class/struct/union&quot;</p>
<pre><code class="language-cpp">class Objekt
{
...
bool istAktiv() {...}
virtual std::string getTyp() = 0;
}

class ObjektA : public Objekt
{
virtual std::string getTyp() { return &quot;Typ A&quot;; }
...
}

...
</code></pre>
<pre><code class="language-cpp">std::vector&lt;Objekt*&gt;::iterator it;
it = ObjektContainer.begin();
while (it != ObjektContainer.end())
{
         if(it-&gt;istAktiv() == true)
	 {
	    return it-&gt;getName();
	 }
it++;
}
</code></pre>
<p>Wie kann ich auf die Funktionen zugreifen? Liegt es daran dass ich einen Pointer auf einen Pointer habe (Iterator ist ein Pointer der auf einen Pointer des Objekts zeigt)?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1582453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1582453</guid><dc:creator><![CDATA[Hello]]></dc:creator><pubDate>Mon, 15 Sep 2008 19:28:32 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Iteratoren on Mon, 15 Sep 2008 19:38:07 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>deine Vermutung war schon richtig.<br />
Du musst erst dein Iterator dereferenizieren, dann hast du ein Object*, also nen Zeigen. Dann noch ein -&gt; und du kannst deine Funktion erreichen.</p>
<p>(*it)-&gt;Funktion();</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1582463</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1582463</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 15 Sep 2008 19:38:07 GMT</pubDate></item></channel></rss>