<?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[Include Problem]]></title><description><![CDATA[<p>Ich habe 2 Klassen (ClassA, ClassB)</p>
<p>Ich möchte von jeder Klasse auf die Methoden der anderen Zugreifen.<br />
ClassA.h:</p>
<pre><code class="language-cpp">#pragma once
#include &quot;ClassB.h&quot;
class ClassA
{
public:
	ClassA(void);
	~ClassA(void);
	ClassB b;	
};
</code></pre>
<p>ClassB.h:</p>
<pre><code class="language-cpp">#pragma once
#include &quot;ClassA.h&quot;
class ClassB
{
public:
	ClassB(void);
	~ClassB(void);
	ClassA A;
};
</code></pre>
<p>Ich erhalte folgende Fehler:</p>
<pre><code>ClassA.cpp
classb.h(8) : error C2146: syntax error : missing ';' before identifier 'A'
classb.h(8) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
classb.h(8) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
ClassB.cpp
classa.h(8) : error C2146: syntax error : missing ';' before identifier 'b'
classa.h(8) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
classa.h(8) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
</code></pre>
<p>Wenn ich aus einer .h Datei das include und die Erzeugung des Objekts weglasse dann läuft das Programm.</p>
<p>Mache ich irgendwas falsch oder geht das gar nicht dass beide Klassen auf die jeweils andere zugreifen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/190186/include-problem</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 12:56:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/190186.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 20 Aug 2007 14:13:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Include Problem on Mon, 20 Aug 2007 14:13:45 GMT]]></title><description><![CDATA[<p>Ich habe 2 Klassen (ClassA, ClassB)</p>
<p>Ich möchte von jeder Klasse auf die Methoden der anderen Zugreifen.<br />
ClassA.h:</p>
<pre><code class="language-cpp">#pragma once
#include &quot;ClassB.h&quot;
class ClassA
{
public:
	ClassA(void);
	~ClassA(void);
	ClassB b;	
};
</code></pre>
<p>ClassB.h:</p>
<pre><code class="language-cpp">#pragma once
#include &quot;ClassA.h&quot;
class ClassB
{
public:
	ClassB(void);
	~ClassB(void);
	ClassA A;
};
</code></pre>
<p>Ich erhalte folgende Fehler:</p>
<pre><code>ClassA.cpp
classb.h(8) : error C2146: syntax error : missing ';' before identifier 'A'
classb.h(8) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
classb.h(8) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
ClassB.cpp
classa.h(8) : error C2146: syntax error : missing ';' before identifier 'b'
classa.h(8) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
classa.h(8) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
</code></pre>
<p>Wenn ich aus einer .h Datei das include und die Erzeugung des Objekts weglasse dann läuft das Programm.</p>
<p>Mache ich irgendwas falsch oder geht das gar nicht dass beide Klassen auf die jeweils andere zugreifen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1348342</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1348342</guid><dc:creator><![CDATA[micha__]]></dc:creator><pubDate>Mon, 20 Aug 2007 14:13:45 GMT</pubDate></item><item><title><![CDATA[Reply to Include Problem on Mon, 20 Aug 2007 14:18:28 GMT]]></title><description><![CDATA[<p>Gegenseitiges inlcude funzt nicht. Denn bei einer der beiden Klassen kennt der Kompiler nicht die Deklaration der anderen...</p>
<p>Hier hilft nur Vorwärtsdeklaration...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1348343</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1348343</guid><dc:creator><![CDATA[muffmolch]]></dc:creator><pubDate>Mon, 20 Aug 2007 14:18:28 GMT</pubDate></item><item><title><![CDATA[Reply to Include Problem on Mon, 20 Aug 2007 14:25:18 GMT]]></title><description><![CDATA[<p>muffmolch schrieb:</p>
<blockquote>
<p>Gegenseitiges inlcude funzt nicht. Denn bei einer der beiden Klassen kennt der Kompiler nicht die Deklaration der anderen...</p>
<p>Hier hilft nur Vorwärtsdeklaration...</p>
</blockquote>
<p>Zudem wäre es noch in einen weiteren Punkt fatal wenn es Funktionieren würde sofern mindestens ein Element hinzukommt (A enthält B, enthält A, enthält B...).</p>
<p>Wie hängen die beiden Klassen logisch zusammen?<br />
Was benötigt die jeweilige Klasse von der anderen?</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1348349</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1348349</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Mon, 20 Aug 2007 14:25:18 GMT</pubDate></item><item><title><![CDATA[Reply to Include Problem on Mon, 20 Aug 2007 14:31:32 GMT]]></title><description><![CDATA[<p>Eine Klasse ist ein MFC-Dialog der auf die Methoden aus der anderen zugreift.<br />
In der anderen Klasse wird in einer Methode ein Pointer auf die MFC-Klasse benötigt um auf die Steuerelemente zuzugreifen.</p>
<p>Vorwärtsdeklaration müsste ja so funktionieren?!?</p>
<pre><code class="language-cpp">class ClassA;

class ClassB
{
    ClassA a;
    ....
};
class ClassA
{
    Classb b;
    ....
};
</code></pre>
<p>und wie wenn ich die Klassen in getrennten Dateien habe??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1348355</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1348355</guid><dc:creator><![CDATA[micha__]]></dc:creator><pubDate>Mon, 20 Aug 2007 14:31:32 GMT</pubDate></item><item><title><![CDATA[Reply to Include Problem on Mon, 20 Aug 2007 14:37:07 GMT]]></title><description><![CDATA[<p>ansich funktioniert Vorwärtsdeklaration so. Da der Kompiler aber die Größe von der einen Klasse nicht kennt, kann diese kein Member der anderen Klasse sein, sondern lediglich ein Pointer darauf... Ein Pointer hat nämlich eine definierte dem Compiler bekannte Größe. zudem darfst du auf keien Methode der anderen Klase in der Deklararion zugreifen. Erst später bei der Implementierung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1348361</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1348361</guid><dc:creator><![CDATA[muffmolch]]></dc:creator><pubDate>Mon, 20 Aug 2007 14:37:07 GMT</pubDate></item><item><title><![CDATA[Reply to Include Problem on Mon, 20 Aug 2007 14:43:48 GMT]]></title><description><![CDATA[<p>danke!! es funzt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1348365</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1348365</guid><dc:creator><![CDATA[micha__]]></dc:creator><pubDate>Mon, 20 Aug 2007 14:43:48 GMT</pubDate></item><item><title><![CDATA[Reply to Include Problem on Mon, 20 Aug 2007 15:21:28 GMT]]></title><description><![CDATA[<p>aber nicht so, wie du es oben geschrieben hast, oder?</p>
<p>denn dort sollte folgerichtig die Fehlermeldung:</p>
<pre><code class="language-cpp">error C2079: 'classA::b' uses undefined class 'classB'
</code></pre>
<p>erscheinen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1348402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1348402</guid><dc:creator><![CDATA[muffmolch]]></dc:creator><pubDate>Mon, 20 Aug 2007 15:21:28 GMT</pubDate></item></channel></rss>