<?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 mit Kreisreferenz]]></title><description><![CDATA[<p>hi</p>
<p>Habe ein Problem. Brauche in zwei Klassen jeweils eine Referenz auf die andere. Doch das gibt Probleme bei der Konstruktion.</p>
<pre><code class="language-cpp">class A
{
public:
    A( B&amp; b) : m_b( b ) {}
private:
    B&amp; m_b;
};

class B
{
public:
    B( A&amp; a) : m_a( a ) {}
private:
    A&amp; m_a;
};
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Wie kann ich die Zwickmühle lösen?<br />
Danke im vorraus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/177913/klassen-mit-kreisreferenz</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 04:48:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/177913.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 05 Apr 2007 11:21:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klassen mit Kreisreferenz on Thu, 05 Apr 2007 11:21:00 GMT]]></title><description><![CDATA[<p>hi</p>
<p>Habe ein Problem. Brauche in zwei Klassen jeweils eine Referenz auf die andere. Doch das gibt Probleme bei der Konstruktion.</p>
<pre><code class="language-cpp">class A
{
public:
    A( B&amp; b) : m_b( b ) {}
private:
    B&amp; m_b;
};

class B
{
public:
    B( A&amp; a) : m_a( a ) {}
private:
    A&amp; m_a;
};
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Wie kann ich die Zwickmühle lösen?<br />
Danke im vorraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1259941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1259941</guid><dc:creator><![CDATA[G. Kreisler]]></dc:creator><pubDate>Thu, 05 Apr 2007 11:21:00 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen mit Kreisreferenz on Thu, 05 Apr 2007 11:24:37 GMT]]></title><description><![CDATA[<p>Auf die Weise gar nicht (das Ziel der Referenz muß existieren, bevor du darauf verweisen kannst, also hast du ein Problem, in welcher Reihenfolge A und B angelegt werden können). Aber du könntest Pointer (die sind nicht so restriktiv wie Referenzen) und Forward-Deklarationen verwenden.</p>
<p>(PS: Wozu soll das gut sein? Und warum verschmilzt du nicht beide Klassen zu einer Einheit?)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1259946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1259946</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 05 Apr 2007 11:24:37 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen mit Kreisreferenz on Thu, 05 Apr 2007 12:06:16 GMT]]></title><description><![CDATA[<p>Also Klasse A ist das Spiel selbst, Klasse B der Spieler.<br />
Die beiden rufen sich gegenseitig Methoden ab.<br />
Der Spieler kann auch ausgetauscht werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1259985</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1259985</guid><dc:creator><![CDATA[G. Kreisler]]></dc:creator><pubDate>Thu, 05 Apr 2007 12:06:16 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen mit Kreisreferenz on Thu, 05 Apr 2007 12:11:01 GMT]]></title><description><![CDATA[<p>G. Kreisler schrieb:</p>
<blockquote>
<p>Der Spieler kann auch ausgetauscht werden.</p>
</blockquote>
<p>Dann hast Du auch schon die Referenz die keine sein darf. Denn bei Referenzen kann das referenzierte Objekt nicht ausgetauscht werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1259990</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1259990</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 05 Apr 2007 12:11:01 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen mit Kreisreferenz on Thu, 05 Apr 2007 12:12:44 GMT]]></title><description><![CDATA[<p>G. Kreisler schrieb:</p>
<blockquote>
<p>Der Spieler kann auch ausgetauscht werden.</p>
</blockquote>
<p>Ein klarer Punkt gegen Referenzen (die kannst du nämlich NICHT austauschen) - damit bleiben zumindest hierfür nur noch Zeiger:</p>
<pre><code class="language-cpp">class player;//forward Deklaration

class game
{
  player* m_player;
public:
  game()
  : m_player(NULL) {}
  void set_player(player* the_player)
  { m_player=the_player; }
};

class player
{
  game&amp; m_game;
public:
  player(game&amp; the_game)
  : m_game(the_game) {}
};

...
game G;
player P(G);
G.set_player(&amp;P);
...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1259993</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1259993</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 05 Apr 2007 12:12:44 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen mit Kreisreferenz on Thu, 05 Apr 2007 12:17:26 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">void set_player(player &amp;the_player)
  { m_player = &amp;the_player; }
</code></pre>
<p>Find ich so schöner. <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/1259999</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1259999</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Thu, 05 Apr 2007 12:17:26 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen mit Kreisreferenz on Thu, 05 Apr 2007 13:44:10 GMT]]></title><description><![CDATA[<p>Ok, danke euch.<br />
Mag zwar keine Zeiger, aber passt so wohl.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1260102</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1260102</guid><dc:creator><![CDATA[G. Kreisler]]></dc:creator><pubDate>Thu, 05 Apr 2007 13:44:10 GMT</pubDate></item></channel></rss>