<?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[Forward Deklaration]]></title><description><![CDATA[<p>Folgende Sache:</p>
<pre><code class="language-cpp">class B;

class A
{
  public:
    B* Binstanz;
    inline void Do()
    {
      Binstanz = new B;
      B-&gt;Anything();     // KABOOM - kennt er nicht bei Forward, aber wie mach ichs dann ?
    }
};

class B
{
  public:
    void Anything();
};
</code></pre>
<blockquote>
<p>'status' ist kein Element von 'Launcher', weil der Typ nicht definiert ist</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/topic/276816/forward-deklaration</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 05:29:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/276816.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 08 Nov 2010 17:37:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Forward Deklaration on Mon, 08 Nov 2010 17:37:20 GMT]]></title><description><![CDATA[<p>Folgende Sache:</p>
<pre><code class="language-cpp">class B;

class A
{
  public:
    B* Binstanz;
    inline void Do()
    {
      Binstanz = new B;
      B-&gt;Anything();     // KABOOM - kennt er nicht bei Forward, aber wie mach ichs dann ?
    }
};

class B
{
  public:
    void Anything();
};
</code></pre>
<blockquote>
<p>'status' ist kein Element von 'Launcher', weil der Typ nicht definiert ist</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1977433</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977433</guid><dc:creator><![CDATA[5cript]]></dc:creator><pubDate>Mon, 08 Nov 2010 17:37:20 GMT</pubDate></item><item><title><![CDATA[Reply to Forward Deklaration on Mon, 08 Nov 2010 17:39:59 GMT]]></title><description><![CDATA[<p>Klasse B vor Klasse A definieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1977434</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977434</guid><dc:creator><![CDATA[this-*gt*that]]></dc:creator><pubDate>Mon, 08 Nov 2010 17:39:59 GMT</pubDate></item><item><title><![CDATA[Reply to Forward Deklaration on Mon, 08 Nov 2010 17:43:33 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">B-&gt;Anything();
</code></pre>
<p><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>
<p>Deine Instanz heißt 'Binstanz'.</p>
<p>edit: Ich verstehe die Fehlermeldung nicht, wo ist 'status' und 'Launcher' definiert?</p>
<p>Thingol <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/1977435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977435</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 08 Nov 2010 17:43:33 GMT</pubDate></item><item><title><![CDATA[Reply to Forward Deklaration on Mon, 08 Nov 2010 17:45:14 GMT]]></title><description><![CDATA[<p>Ok ich hab was vergessen:</p>
<pre><code class="language-cpp">class B;

class A
{
  public:
    void AnythingA();
    B* Binstanz;
    inline void DoB()
    {
      Binstanz = new B;
      Binstaz-&gt;AnythingB();
    }
};

class B
{
  public:
    void AnythingB();
    A* Ainstanz;
    inline void DoA()
    {
      Ainstanz = new A;
      Ainstanz-&gt;AnythingA(); 
    }
};
</code></pre>
<p>Hat sowas eigentlich ein Namen ?</p>
<p>Launcher ist Klasse B, status ist in Klasse B.<br />
Klasse A will auf Klasse B zugreifen.<br />
Aber das will er nicht haben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1977439</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977439</guid><dc:creator><![CDATA[5cript]]></dc:creator><pubDate>Mon, 08 Nov 2010 17:45:14 GMT</pubDate></item><item><title><![CDATA[Reply to Forward Deklaration on Mon, 08 Nov 2010 18:09:54 GMT]]></title><description><![CDATA[<p>this-&gt;that schrieb:</p>
<blockquote>
<p>Klasse B vor Klasse A definieren.</p>
</blockquote>
<p>Wie 'this-&gt;that' schon erwähnt hat, muss die Definition vor 'A' erfolgen. In deinem Fall in eine Header-Datei.</p>
<p>Das 'inline' ist meines Wissens nicht notwendig, weil du die Methode ja schon in der Klassendefinition definierst -&gt; inline. (Ich lasse mich eines besseren belehren, falls die Aussage falsch war).</p>
<p>edit: Irgendwie bin ich mir doch nicht mehr so sicher...</p>
<p>Thingol <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/1977444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977444</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 08 Nov 2010 18:09:54 GMT</pubDate></item><item><title><![CDATA[Reply to Forward Deklaration on Mon, 08 Nov 2010 17:58:03 GMT]]></title><description><![CDATA[<p>d.h. Ich muss sie in 2 header, mit includeguards tun ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1977447</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977447</guid><dc:creator><![CDATA[5cript]]></dc:creator><pubDate>Mon, 08 Nov 2010 17:58:03 GMT</pubDate></item><item><title><![CDATA[Reply to Forward Deklaration on Mon, 08 Nov 2010 17:58:51 GMT]]></title><description><![CDATA[<p>Tim06TR schrieb:</p>
<blockquote>
<p>...Hat sowas eigentlich ein Namen ?...</p>
</blockquote>
<p>Designfehler?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1977453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977453</guid><dc:creator><![CDATA[Mitleid]]></dc:creator><pubDate>Mon, 08 Nov 2010 17:58:51 GMT</pubDate></item><item><title><![CDATA[Reply to Forward Deklaration on Mon, 08 Nov 2010 19:02:49 GMT]]></title><description><![CDATA[<p>Tim06TR schrieb:</p>
<blockquote>
<p>d.h. Ich muss sie in 2 header, mit includeguards tun?</p>
</blockquote>
<p>Nein.</p>
<pre><code class="language-cpp">class B;

class A
{
  public:
    void AnythingA();
    B* Binstanz;
    inline void DoB(); // inline
};

class B
{
  public:
    void AnythingB();
    A* Ainstanz;
    void DoA() // implizit inline
    {
      Ainstanz = new A;
      Ainstanz-&gt;AnythingA();
    }
};

A::A()
{
  Binstanz = new B;
  Binstaz-&gt;AnythingB();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1977485</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977485</guid><dc:creator><![CDATA[nein]]></dc:creator><pubDate>Mon, 08 Nov 2010 19:02:49 GMT</pubDate></item><item><title><![CDATA[Reply to Forward Deklaration on Mon, 08 Nov 2010 19:55:08 GMT]]></title><description><![CDATA[<p>Tim06TR schrieb:</p>
<blockquote>
<p>d.h. Ich muss sie in 2 header, mit includeguards tun ?</p>
</blockquote>
<p>Lies am besten mal <a href="http://www.drakon.ch/?id=&amp;offset=5&amp;mobile=0&amp;show_entry=77" rel="nofollow">das</a>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1977514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977514</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 08 Nov 2010 19:55:08 GMT</pubDate></item><item><title><![CDATA[Reply to Forward Deklaration on Tue, 09 Nov 2010 02:37:36 GMT]]></title><description><![CDATA[<p>Tim06TR schrieb:</p>
<blockquote>
<p>Ok ich hab was vergessen:</p>
<pre><code class="language-cpp">class B;

class A
{
  public:
    void AnythingA();
    B* Binstanz;
    inline void DoB()
    {
      Binstanz = new B;
      Binstaz-&gt;AnythingB();
    }
};

class B
{
  public:
    void AnythingB();
    A* Ainstanz;
    inline void DoA()
    {
      Ainstanz = new A;
      Ainstanz-&gt;AnythingA(); 
    }
};
</code></pre>
</blockquote>
<pre><code class="language-cpp">// fwd declarations

class A; // für A nicht nötig, schadet aber auch nicht
class B; // für B sehr wohl nötig

// class definitions

class A
{
  public:
    void AnythingA();
    B* Binstanz;
    void DoB();
};

class B
{
  public:
    void AnythingB();
    A* Ainstanz;
    void DoA();
};

// inline functions

inline void A::DoB()
{
  Binstanz = new B;
  Binstaz-&gt;AnythingB();
}

inline void B::DoA()
{
  Ainstanz = new A;
  Ainstanz-&gt;AnythingA(); 
}
</code></pre>
<blockquote>
<p>Hat sowas eigentlich ein Namen ?</p>
</blockquote>
<p>Zyklische Abhängigkeit (cyclic dependency) bzw. auch Zirkuläre Abhängigkeit (circular dependency).</p>
<p>Im Deutschen ist Zyklische Abhängigkeit gebräuchlicher, im Englischen eher circular dependency.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1977610</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977610</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 09 Nov 2010 02:37:36 GMT</pubDate></item><item><title><![CDATA[Reply to Forward Deklaration on Tue, 09 Nov 2010 13:20:42 GMT]]></title><description><![CDATA[<p>Das ich darauf nicht selbst gekommen bin <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1977778</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977778</guid><dc:creator><![CDATA[5cript]]></dc:creator><pubDate>Tue, 09 Nov 2010 13:20:42 GMT</pubDate></item><item><title><![CDATA[Reply to Forward Deklaration on Tue, 09 Nov 2010 17:44:46 GMT]]></title><description><![CDATA[<p>Tim06TR schrieb:</p>
<blockquote>
<p>Das ich darauf nicht selbst gekommen bin <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
</blockquote>
<p>Würde auch in dem von mir gepostetem Link stehen..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1977984</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977984</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 09 Nov 2010 17:44:46 GMT</pubDate></item></channel></rss>