<?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[Zyklische Abhängigkeiten und Vorwärtsdeklaration]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich bin noch reichlich unerfahren mit C++ und recht bald auf das Problem erforderlicher Vorwärtsdeklarationen gestoßen. Folgendes Listing stellt mein Problem dar:</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;

class B;

class A {
 public:
  void AF(B&amp; b) {
    b.BF();
  }

  void AF2() {
  }
};

class B {
 public:
  void BF(A&amp; a) {
    a.AF2();
  }
};
</code></pre>
<p>Jede Klasse muss auf eine Funktion der jeweils anderen Klasse zugreifen können, sonst kann man solche Konflikte ja teilweise mit geschicktem Umsortieren der Klassendefinitionen lösen.</p>
<p>Wenn ich nun versuche, das zu kompilieren, erhalte ich die Fehlermeldungen:</p>
<p>Error 1 error C2027: use of undefined type 'B' forwarddeclaration.cpp 8 MeinProjekt<br />
Error 2 error C2228: left of '.BF' must have class/struct/union forwarddeclaration.cpp 8 MeinProjekt</p>
<p>Da ich mit der Suchmaschine meines Vertrauens und den Schlüsselwörtern &quot;cyclic dependencies use of undefined type c++&quot; nicht wirklich was gefunden habe, wende ich mich an euch. Wie löse ich das am besten?</p>
<p>Danke im Voraus,<br />
Stefan</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/253885/zyklische-abhängigkeiten-und-vorwärtsdeklaration</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 11:48:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/253885.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 08 Nov 2009 12:46:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zyklische Abhängigkeiten und Vorwärtsdeklaration on Sun, 08 Nov 2009 12:46:40 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich bin noch reichlich unerfahren mit C++ und recht bald auf das Problem erforderlicher Vorwärtsdeklarationen gestoßen. Folgendes Listing stellt mein Problem dar:</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;

class B;

class A {
 public:
  void AF(B&amp; b) {
    b.BF();
  }

  void AF2() {
  }
};

class B {
 public:
  void BF(A&amp; a) {
    a.AF2();
  }
};
</code></pre>
<p>Jede Klasse muss auf eine Funktion der jeweils anderen Klasse zugreifen können, sonst kann man solche Konflikte ja teilweise mit geschicktem Umsortieren der Klassendefinitionen lösen.</p>
<p>Wenn ich nun versuche, das zu kompilieren, erhalte ich die Fehlermeldungen:</p>
<p>Error 1 error C2027: use of undefined type 'B' forwarddeclaration.cpp 8 MeinProjekt<br />
Error 2 error C2228: left of '.BF' must have class/struct/union forwarddeclaration.cpp 8 MeinProjekt</p>
<p>Da ich mit der Suchmaschine meines Vertrauens und den Schlüsselwörtern &quot;cyclic dependencies use of undefined type c++&quot; nicht wirklich was gefunden habe, wende ich mich an euch. Wie löse ich das am besten?</p>
<p>Danke im Voraus,<br />
Stefan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805134</guid><dc:creator><![CDATA[gs20091108]]></dc:creator><pubDate>Sun, 08 Nov 2009 12:46:40 GMT</pubDate></item><item><title><![CDATA[Reply to Zyklische Abhängigkeiten und Vorwärtsdeklaration on Sun, 08 Nov 2009 13:01:10 GMT]]></title><description><![CDATA[<p>forward deklaration reicht hier logischerweise nciht.<br />
es sei denn, du trennst es in *.h und *.cpp - dann reicht im header jeweils eine forward deklaration.</p>
<p>allerdings sieht das (zumindest für mich^^) ein wenig komisch aus, was du dort machst^^</p>
<p>PS: stdafx.h includiere ich auch immer nur im source - im header hat die imho nix zu suchen...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805138</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805138</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sun, 08 Nov 2009 13:01:10 GMT</pubDate></item><item><title><![CDATA[Reply to Zyklische Abhängigkeiten und Vorwärtsdeklaration on Sun, 08 Nov 2009 14:57:56 GMT]]></title><description><![CDATA[<p>Hehe. Immer die gleichen Fragen. Gut, dass ich da einen Blog Eintrag drüber geschrieben habe:</p>
<p>Definitionen und Deklarationen in C++:<br />
<a href="http://www.drakon.ch/?id=&amp;offset=&amp;mobile=0&amp;show_entry=77" rel="nofollow">http://www.drakon.ch/?id=&amp;offset=&amp;mobile=0&amp;show_entry=77</a></p>
<p>Da wird erklärt, warum die Vorwärtsdeklaration in diesem Falle nicht reicht und wie du das ändern kannst.</p>
<p>EDIT:<br />
Link editiert</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805147</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805147</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 08 Nov 2009 14:57:56 GMT</pubDate></item><item><title><![CDATA[Reply to Zyklische Abhängigkeiten und Vorwärtsdeklaration on Sun, 08 Nov 2009 14:18:14 GMT]]></title><description><![CDATA[<p>Punkt 1. Das Beispiel war schlecht zusammengebastelt. Ich verwende sehr wohl für beide Klassen jeweils eine Aufsplittung in .h und .cc, die in diesem Fall relevant ist, denn</p>
<p>Punkt 2. Durch simples Einbinden der .cpp-Datei in die .cpp-Datei der verwendenden Datei war das Problem zu lösen.</p>
<p>Sorry für den verursachten Aufwand <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805177</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805177</guid><dc:creator><![CDATA[gs20091108]]></dc:creator><pubDate>Sun, 08 Nov 2009 14:18:14 GMT</pubDate></item><item><title><![CDATA[Reply to Zyklische Abhängigkeiten und Vorwärtsdeklaration on Sun, 08 Nov 2009 14:50:30 GMT]]></title><description><![CDATA[<p>Du bindest eine .cpp in eine andere ein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805184</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805184</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 08 Nov 2009 14:50:30 GMT</pubDate></item></channel></rss>