<?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[Compilerfehler bei friend-Klasse]]></title><description><![CDATA[<p>Hallo,<br />
folgender Code (stark vereinfacht) compiliert nicht, Fehlermeldung s. Kommentar im Code. Es soll eine doppelt verkettete Liste sein, der Iterator soll die interne node-Darstellung kapseln.</p>
<pre><code class="language-cpp">#include &lt;string&gt;
class myClass; //forward Deklaration

class myClass_iterator {
   public:
      //  Deklarationen
   private:
      myClass::node* iter; // &lt;-- Fehler: Typ »myClass« 
                           //  ist nicht vom Typ »myClass_iterator« 
                           //  abgeleitet
};

class myClass {
      friend class myClass_iterator;
   public:
      typedef myClass_iterator iterator;
      // Deklarationen
   private:
      struct node {
         std::string content;
         iterator next, prev;
      };
      iterator first, last;
};

int main() {return 0;}
</code></pre>
<p>Kann mir jemand helfen ???</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/203321/compilerfehler-bei-friend-klasse</link><generator>RSS for Node</generator><lastBuildDate>Wed, 07 Oct 2026 11:58:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/203321.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 21 Jan 2008 15:09:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Compilerfehler bei friend-Klasse on Mon, 21 Jan 2008 15:09:53 GMT]]></title><description><![CDATA[<p>Hallo,<br />
folgender Code (stark vereinfacht) compiliert nicht, Fehlermeldung s. Kommentar im Code. Es soll eine doppelt verkettete Liste sein, der Iterator soll die interne node-Darstellung kapseln.</p>
<pre><code class="language-cpp">#include &lt;string&gt;
class myClass; //forward Deklaration

class myClass_iterator {
   public:
      //  Deklarationen
   private:
      myClass::node* iter; // &lt;-- Fehler: Typ »myClass« 
                           //  ist nicht vom Typ »myClass_iterator« 
                           //  abgeleitet
};

class myClass {
      friend class myClass_iterator;
   public:
      typedef myClass_iterator iterator;
      // Deklarationen
   private:
      struct node {
         std::string content;
         iterator next, prev;
      };
      iterator first, last;
};

int main() {return 0;}
</code></pre>
<p>Kann mir jemand helfen ???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440687</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440687</guid><dc:creator><![CDATA[Diogenes77]]></dc:creator><pubDate>Mon, 21 Jan 2008 15:09:53 GMT</pubDate></item><item><title><![CDATA[Reply to Compilerfehler bei friend-Klasse on Mon, 21 Jan 2008 15:23:27 GMT]]></title><description><![CDATA[<p>Um auf Inhalte der Klasse myclass zugreifen zu können (in dem Fall die Sub-Klasse node), reicht die Forward Deklaration nicht aus - da brauchst du schon die volle Klassendefinition. Hier hast du allerdings das Problem, daß myclass::node auch die Definition des Iterators braucht.</p>
<p>Eine Lösung wäre es, die Iterator-Klasse auch IN der myclass zu definieren (außerhalb hat sie sowieso keinen Nutzen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440700</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 21 Jan 2008 15:23:27 GMT</pubDate></item><item><title><![CDATA[Reply to Compilerfehler bei friend-Klasse on Mon, 21 Jan 2008 15:39:40 GMT]]></title><description><![CDATA[<p>Bin jetzt leicht verwirrt ... Meinst du so ??? :</p>
<pre><code class="language-cpp">#include &lt;string&gt;
class myClass {
   public:
      class iterator {
         public:
            //  Deklarationen
         private:
         node *iter; // &lt;-- Fehler: ISO-C++ verbietet Deklaration von »node« ohne Typ
      };

      // Deklarationen
   private:
      struct node {
         std::string content;
         iterator next, prev;
      };
      iterator first, last;
};

int main() {return 0;}
</code></pre>
<p>Das bringt allerdings weitere Fehlermeldung, s. Kommentar im Code.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440712</guid><dc:creator><![CDATA[Diogenes77]]></dc:creator><pubDate>Mon, 21 Jan 2008 15:39:40 GMT</pubDate></item><item><title><![CDATA[Reply to Compilerfehler bei friend-Klasse on Mon, 21 Jan 2008 15:52:19 GMT]]></title><description><![CDATA[<p>Eine Declaration struct node;<br />
vor class iterator {} und es läuft. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1440723</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440723</guid><dc:creator><![CDATA[Ramsis]]></dc:creator><pubDate>Mon, 21 Jan 2008 15:52:19 GMT</pubDate></item><item><title><![CDATA[Reply to Compilerfehler bei friend-Klasse on Mon, 21 Jan 2008 15:54:59 GMT]]></title><description><![CDATA[<p>und vielleicht noch ein friend class myClass::iterator, wenn er meckert dass iterator kein node haben darf, da letzteres private in myClass ist...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440726</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440726</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 21 Jan 2008 15:54:59 GMT</pubDate></item><item><title><![CDATA[Reply to Compilerfehler bei friend-Klasse on Mon, 21 Jan 2008 16:01:38 GMT]]></title><description><![CDATA[<p>Besten Dank <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="👍"
    />, hab's probiert, es compiliert. Für die Nachwelt halte ich noch die Lösung im Klartext fest <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>
<pre><code class="language-cpp">#include &lt;string&gt;
class myClass {
   private:
      struct node;
   public:
      class iterator {
         public:
            //  Deklarationen
         private:
         node *iter; // &lt;-- Fehler: ISO-C++ verbietet Deklaration von »node« ohne Typ
      };

      // Deklarationen
   private:
      struct node {
         std::string content;
         iterator *next, *prev;
      };
      iterator first, last;
};

int main() {return 0;}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1440738</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440738</guid><dc:creator><![CDATA[Diogenes77]]></dc:creator><pubDate>Mon, 21 Jan 2008 16:01:38 GMT</pubDate></item></channel></rss>