<?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[klassen sollen sich gegenseitig benutzen.]]></title><description><![CDATA[<p>guten tag, folgende 2 klassen:</p>
<p>class HeadQuater<br />
{<br />
public:</p>
<p>Auto *A;<br />
void run();<br />
};</p>
<p>#include &quot;HeadQuater&quot;<br />
class Auto<br />
{<br />
public:</p>
<p>HeadQuater *Hq;<br />
void wähle();<br />
};</p>
<p>in der funktion wähle() benutze ich die funktion von HeadQuater wie folgt:<br />
Hq-&gt;run();<br />
das funktioniert auch ohne probleme.</p>
<p>in HeadQuater möchte ich jetzt gerne wähle() der klasse Auto benutzen. Also includiere ich #include &quot;Auto&quot; in der .h datei von HeadQuater. laut compiler schließen sich die klassen jetzt selbst ein. also der Aufruf A-&gt;wähle(); in der .cpp datei von HeadQuater funktioniert nicht.<br />
Das die Klassen nur einmal aufgerufen werden kann man laut internet hiermit:</p>
<p>#ifndef MYHEADERNAME_H<br />
#define MYHEADERNAME_H</p>
<p>//Hier das was in die Headerdatei kommt</p>
<p>#endif</p>
<p>umgehen. leider funktioniert das nicht.</p>
<p>Also wie schaffe ich es, dass ich die methoden beider klassen in beiden klassen verwenden kann? danke euch <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/317561/klassen-sollen-sich-gegenseitig-benutzen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Jul 2026 15:27:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/317561.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 12 Jun 2013 20:50:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to klassen sollen sich gegenseitig benutzen. on Wed, 12 Jun 2013 20:53:05 GMT]]></title><description><![CDATA[<p>guten tag, folgende 2 klassen:</p>
<p>class HeadQuater<br />
{<br />
public:</p>
<p>Auto *A;<br />
void run();<br />
};</p>
<p>#include &quot;HeadQuater&quot;<br />
class Auto<br />
{<br />
public:</p>
<p>HeadQuater *Hq;<br />
void wähle();<br />
};</p>
<p>in der funktion wähle() benutze ich die funktion von HeadQuater wie folgt:<br />
Hq-&gt;run();<br />
das funktioniert auch ohne probleme.</p>
<p>in HeadQuater möchte ich jetzt gerne wähle() der klasse Auto benutzen. Also includiere ich #include &quot;Auto&quot; in der .h datei von HeadQuater. laut compiler schließen sich die klassen jetzt selbst ein. also der Aufruf A-&gt;wähle(); in der .cpp datei von HeadQuater funktioniert nicht.<br />
Das die Klassen nur einmal aufgerufen werden kann man laut internet hiermit:</p>
<p>#ifndef MYHEADERNAME_H<br />
#define MYHEADERNAME_H</p>
<p>//Hier das was in die Headerdatei kommt</p>
<p>#endif</p>
<p>umgehen. leider funktioniert das nicht.</p>
<p>Also wie schaffe ich es, dass ich die methoden beider klassen in beiden klassen verwenden kann? danke euch <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2330680</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330680</guid><dc:creator><![CDATA[Addicted]]></dc:creator><pubDate>Wed, 12 Jun 2013 20:53:05 GMT</pubDate></item><item><title><![CDATA[Reply to klassen sollen sich gegenseitig benutzen. on Thu, 13 Jun 2013 10:41:00 GMT]]></title><description><![CDATA[<p>Mit einer Vorwärtsdeklaration.</p>
<p>Du deklarierst die Klassen in den Headern, anstatt ihre Header einzubinden.<br />
Also anstatt in dem Header von HeadQuarter den Header von Auto einzubinden, schreibst du</p>
<pre><code>class Auto;
</code></pre>
<p>Dann kannst du in den Sources, die beide Header problemlos einbinden können, beide Klassen benutzen.</p>
<p>Beispiel:</p>
<pre><code>// A.h
struct B; // struct B wird deklariert.

struct A
{
    B* b; // Ein opaker Zeiger, da der Typ hier nicht gebraucht wird kann er unvollständig sein

    A();
};

// B.h
struct A;

struct B
{
    A* a;

    B();
};

// A.cc
#include &quot;A.h&quot;
#include &quot;B.h&quot;

A::A():
    b( new B() )  // für den new-Operator muss der Typ (hier B) vollständig sein. Das ist allerdings durch das Einbinden des Headers kein Problem.
{}

// B.cc
#include &quot;A.h&quot;
#include &quot;B.h&quot;

B::B():
    a( new A() ) 
{}
</code></pre>
<p>~Keine Garantie - bin besoffen. SeppJ kontrolliert das.~ <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="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330685</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330685</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Thu, 13 Jun 2013 10:41:00 GMT</pubDate></item><item><title><![CDATA[Reply to klassen sollen sich gegenseitig benutzen. on Wed, 11 Jun 2014 23:38:27 GMT]]></title><description><![CDATA[<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330695</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330695</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Wed, 11 Jun 2014 23:38:27 GMT</pubDate></item><item><title><![CDATA[Reply to klassen sollen sich gegenseitig benutzen. on Thu, 13 Jun 2013 07:16:00 GMT]]></title><description><![CDATA[<p>Solche zirkulären Abhängigkeiten deuten idR auf Designfehler hin, insbesondere bei Anfängern. Bist du sicher, dass du die Abhängigkeiten so benötigst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330709</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330709</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Thu, 13 Jun 2013 07:16:00 GMT</pubDate></item></channel></rss>