<?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[Klasse aus späterer header datei nutzen]]></title><description><![CDATA[<p>Hallo.</p>
<p>Ich habe zwei Klassen unterschiedlichem Typs, wobei jede eine Referenz auf die andere enthält.</p>
<pre><code>/*Enthalten in /Header/Header1.h*/
typedef class Class1{
    private:

    public:
        class Class2 C; /*Fehler!*/

        Class1(){
            C = NULL;
        }
}Class1;
</code></pre>
<pre><code>/*Enthalten in /Header/Header2.h*/
typedef class Class2{
    private:

    public:
        class Class1 C;

        Class2(){
            C = NULL;
        }
}Class2;
</code></pre>
<pre><code>#include &quot;../Header/Header1.h&quot;
#include &quot;../Header/Header2.h&quot;
</code></pre>
<p>Mein Compiler meckert da jetzt verständlicherweise in Class1, weil er Class2 noch nicht kennt. Ich dachte, ich könnte das wie bei den structs mit dem typedef und dem struct / class vor den Typen, aber es kommt weiter die Fehlermeldung &quot;Class1::Class2 used undefined class 'Class2'&quot;.</p>
<p>Wie kann ich damit umgehen, denn die Reihenfolge der Headerfiles zu vertauschen, wird ja das Problem nur verschieben.</p>
<p>Gruß,<br />
CJens</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/339957/klasse-aus-späterer-header-datei-nutzen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 13:54:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/339957.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 10 Oct 2016 17:48:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klasse aus späterer header datei nutzen on Mon, 10 Oct 2016 17:48:38 GMT]]></title><description><![CDATA[<p>Hallo.</p>
<p>Ich habe zwei Klassen unterschiedlichem Typs, wobei jede eine Referenz auf die andere enthält.</p>
<pre><code>/*Enthalten in /Header/Header1.h*/
typedef class Class1{
    private:

    public:
        class Class2 C; /*Fehler!*/

        Class1(){
            C = NULL;
        }
}Class1;
</code></pre>
<pre><code>/*Enthalten in /Header/Header2.h*/
typedef class Class2{
    private:

    public:
        class Class1 C;

        Class2(){
            C = NULL;
        }
}Class2;
</code></pre>
<pre><code>#include &quot;../Header/Header1.h&quot;
#include &quot;../Header/Header2.h&quot;
</code></pre>
<p>Mein Compiler meckert da jetzt verständlicherweise in Class1, weil er Class2 noch nicht kennt. Ich dachte, ich könnte das wie bei den structs mit dem typedef und dem struct / class vor den Typen, aber es kommt weiter die Fehlermeldung &quot;Class1::Class2 used undefined class 'Class2'&quot;.</p>
<p>Wie kann ich damit umgehen, denn die Reihenfolge der Headerfiles zu vertauschen, wird ja das Problem nur verschieben.</p>
<p>Gruß,<br />
CJens</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2511140</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2511140</guid><dc:creator><![CDATA[CJens]]></dc:creator><pubDate>Mon, 10 Oct 2016 17:48:38 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse aus späterer header datei nutzen on Mon, 10 Oct 2016 17:57:15 GMT]]></title><description><![CDATA[<p>Struct und class sind in C++ fast identisch. Der Unterschied: in structs ist alles public, wenn nichts anderes gesagt wird, in class private. Typedef und gedöns ist bei beiden unnötig.</p>
<p>Du hast zwei Probleme:</p>
<ol>
<li>verwende Pointer</li>
<li>benutze eine Vorwärtsdeklaration</li>
</ol>
<p>NULL war in C++ schon immer Müll. Benutze ab C++11 nullptr, sonst 0.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2511142</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2511142</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Mon, 10 Oct 2016 17:57:15 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse aus späterer header datei nutzen on Mon, 10 Oct 2016 18:30:50 GMT]]></title><description><![CDATA[<p>Wenn die beiden Klassen nur Referenzen auf die jeweils andere enthalten :</p>
<pre><code>Class1.h

// forward declaration
class Class2;

class Class1
{
   Class2&amp; c2_;

public:
   Class1( Class2&amp; c2 ) : c2_( c2 )
   {
   }
};

Class2.h

//foward declaration
class Class1;

class Class2
{
   Class1 c1_;

public:
   Class2( Class1&amp; c1 ) : c1_( c1 )
   {
   }
};
</code></pre>
<p>In beiden .cpp Dateien musst du dann class1.h und class2.h inkludieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2511147</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2511147</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Mon, 10 Oct 2016 18:30:50 GMT</pubDate></item></channel></rss>