<?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[vererbungsfrage]]></title><description><![CDATA[<p>man hat 2 Klassen, sagen wir mal, A un B</p>
<p>Beide sind in eigenen Headern deklariert</p>
<p>nun soll Klasse A eine memberInstanz der Klasse B besitzen und B soll eine memberInstanz der Klasse A besitzen</p>
<p>also etwa sowas:</p>
<p>A.h:</p>
<pre><code class="language-cpp">#include &quot;B.h&quot;

class A
{
private:
    B b;
}
</code></pre>
<p>B.h:</p>
<pre><code class="language-cpp">#include &quot;A.h&quot;

class B
{
private:
    A a;
}
</code></pre>
<p>das geht natürlich nicht. Ich hab das mithilfe eines templates realisiert:<br />
A.h</p>
<pre><code class="language-cpp">template&lt;typename bType&gt;
class A
{
private:
    bType b;
}
</code></pre>
<p>B.h:</p>
<pre><code class="language-cpp">#include &quot;A.h&quot;

class B
{
private:
    A a;
}
</code></pre>
<p>und dann wenn man die A Klasse instanziert, B als typename verwenden. Gibts eine bessere lösung? oder wird das so gemacht?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/205671/vererbungsfrage</link><generator>RSS for Node</generator><lastBuildDate>Fri, 09 Oct 2026 05:30:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/205671.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 16 Feb 2008 17:06:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to vererbungsfrage on Sat, 16 Feb 2008 17:06:00 GMT]]></title><description><![CDATA[<p>man hat 2 Klassen, sagen wir mal, A un B</p>
<p>Beide sind in eigenen Headern deklariert</p>
<p>nun soll Klasse A eine memberInstanz der Klasse B besitzen und B soll eine memberInstanz der Klasse A besitzen</p>
<p>also etwa sowas:</p>
<p>A.h:</p>
<pre><code class="language-cpp">#include &quot;B.h&quot;

class A
{
private:
    B b;
}
</code></pre>
<p>B.h:</p>
<pre><code class="language-cpp">#include &quot;A.h&quot;

class B
{
private:
    A a;
}
</code></pre>
<p>das geht natürlich nicht. Ich hab das mithilfe eines templates realisiert:<br />
A.h</p>
<pre><code class="language-cpp">template&lt;typename bType&gt;
class A
{
private:
    bType b;
}
</code></pre>
<p>B.h:</p>
<pre><code class="language-cpp">#include &quot;A.h&quot;

class B
{
private:
    A a;
}
</code></pre>
<p>und dann wenn man die A Klasse instanziert, B als typename verwenden. Gibts eine bessere lösung? oder wird das so gemacht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1457179</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1457179</guid><dc:creator><![CDATA[Azrael* il Meraz]]></dc:creator><pubDate>Sat, 16 Feb 2008 17:06:00 GMT</pubDate></item><item><title><![CDATA[Reply to vererbungsfrage on Sat, 16 Feb 2008 17:12:47 GMT]]></title><description><![CDATA[<p>dein design:<br />
A enthält ein B, das ein A enthält, das ein B enthält, das ein A enthält, das ein ...</p>
<p>siehst du das problem? <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>
<p>reicht es nicht bspw., in einer der beiden klassen eine referenz (referenz, zeiger, whatever) auf eine instanz der anderen zu halten?</p>
<p>erläutere mal, warum du die klassen überhaupt so aufbauen willst/musst, dann kann dir wahrscheinlich besser geholfen werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1457184</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1457184</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Sat, 16 Feb 2008 17:12:47 GMT</pubDate></item><item><title><![CDATA[Reply to vererbungsfrage on Sat, 16 Feb 2008 18:18:16 GMT]]></title><description><![CDATA[<p>Ich muss das so nicht aufbauen, es ist rein thoeretisches Interesse <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>
<p>Wird sowas überhaupt genutzt? Ist es schlechter Stil?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1457215</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1457215</guid><dc:creator><![CDATA[Azrael* il Meraz]]></dc:creator><pubDate>Sat, 16 Feb 2008 18:18:16 GMT</pubDate></item><item><title><![CDATA[Reply to vererbungsfrage on Sat, 16 Feb 2008 18:29:44 GMT]]></title><description><![CDATA[<p>Sowas geht nicht. Damit der Compiler weiß wie groß A ist, müsste er wissen wie groß B ist, dazu müsste er aber wissen, wie groß A ist. Aber, damit der Compiler weiß wie groß A ist, müsste er wissen wie groß B ist, dazu müsste er aber wissen, wie groß A ist. Aber, damit der Compiler weiß wie groß A ist, müsste er wissen wie groß B ist, dazu müsste er aber wissen, wie groß A ist. Aber, damit der Compiler weiß wie groß A ist, müsste er wissen wie groß B ist, dazu müsste er aber wissen, wie groß A ist. Aber, damit der Compiler weiß wie groß A ist, müsste er wissen wie groß B ist, dazu müsste er aber wissen, wie groß A ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1457216</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1457216</guid><dc:creator><![CDATA[pizza tonno]]></dc:creator><pubDate>Sat, 16 Feb 2008 18:29:44 GMT</pubDate></item><item><title><![CDATA[Reply to vererbungsfrage on Sat, 16 Feb 2008 18:36:59 GMT]]></title><description><![CDATA[<p>pizza tonno schrieb:</p>
<blockquote>
<p>Sowas geht nicht. Damit der Compiler weiß wie groß A ist, müsste er wissen wie groß B ist, dazu müsste er aber wissen, wie groß A ist. Aber, damit der Compiler weiß wie groß A ist, müsste er wissen wie groß B ist, dazu müsste er aber wissen, wie groß A ist. Aber, damit der Compiler weiß wie groß A ist, müsste er wissen wie groß B ist, dazu müsste er aber wissen, wie groß A ist. Aber, damit der Compiler weiß wie groß A ist, müsste er wissen wie groß B ist, dazu müsste er aber wissen, wie groß A ist. Aber, damit der Compiler weiß wie groß A ist, müsste er wissen wie groß B ist, dazu müsste er aber wissen, wie groß A ist.</p>
</blockquote>
<p>Achso geht das, das hab ich nie verstanden...also muss der Compiler das die 10 mal durchlaufen... Dann weiß der wie groß A ist, daraus kann er wohl schließen wie groß B ist, woraus er wiederum Schließen kann wie groß A ist. Dann weiß der wie groß A ist, daraus kann er wohl schließen wie groß B ist, woraus er wiederum Schließen kann wie groß A ist. Dann weiß der wie groß A ist, daraus kann er wohl schließen wie groß B ist, woraus er wiederum Schließen kann wie groß A ist. Dann weiß der wie groß A ist, daraus kann er wohl schließen wie groß B ist, woraus er wiederum Schließen kann wie groß A ist.</p>
<p>Und dann funktioniert die Vererbung...nicht schlecht. Eigentlich nur eine aufarbeitung des Wertes von ganz unten.</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /> thumbs down mann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1457221</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1457221</guid><dc:creator><![CDATA[XaTrIxX]]></dc:creator><pubDate>Sat, 16 Feb 2008 18:36:59 GMT</pubDate></item><item><title><![CDATA[Reply to vererbungsfrage on Sun, 17 Feb 2008 00:14:26 GMT]]></title><description><![CDATA[<p>Man löst sowas mit einem Zeiger. Von dem kann der Compiler immer die Größe bestimmen. Das Problem, dass der Typ bekannt sein muss, löst man mit einer Vorwärtsdeklaration:</p>
<pre><code class="language-cpp">//A.h
#include &quot;B.h&quot;
class A
{
private:
  B b;
};

//B.h
class A;
class B
{
private:
  A* a;
};

//B.cpp
#include A.h
...
</code></pre>
<p>Die Frage, ob das gutes Design ist, ist damit aber noch nicht beantwortet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1457333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1457333</guid><dc:creator><![CDATA[deha]]></dc:creator><pubDate>Sun, 17 Feb 2008 00:14:26 GMT</pubDate></item><item><title><![CDATA[Reply to vererbungsfrage on Sun, 17 Feb 2008 10:16:49 GMT]]></title><description><![CDATA[<p>XaTrIxX schrieb:</p>
<blockquote>
<p>pizza tonno schrieb:</p>
<blockquote>
<p>Sowas geht nicht. Damit der Compiler weiß wie groß A ist, müsste er wissen wie groß B ist, dazu müsste er aber wissen, wie groß A ist. Aber, damit der Compiler weiß wie groß A ist, müsste er wissen wie groß B ist, dazu müsste er aber wissen, wie groß A ist. Aber, damit der Compiler weiß wie groß A ist, müsste er wissen wie groß B ist, dazu müsste er aber wissen, wie groß A ist. Aber, damit der Compiler weiß wie groß A ist, müsste er wissen wie groß B ist, dazu müsste er aber wissen, wie groß A ist. Aber, damit der Compiler weiß wie groß A ist, müsste er wissen wie groß B ist, dazu müsste er aber wissen, wie groß A ist.</p>
</blockquote>
<p>Achso geht das, das hab ich nie verstanden...also muss der Compiler das die 10 mal durchlaufen... Dann weiß der wie groß A ist, daraus kann er wohl schließen wie groß B ist, woraus er wiederum Schließen kann wie groß A ist. Dann weiß der wie groß A ist, daraus kann er wohl schließen wie groß B ist, woraus er wiederum Schließen kann wie groß A ist. Dann weiß der wie groß A ist, daraus kann er wohl schließen wie groß B ist, woraus er wiederum Schließen kann wie groß A ist. Dann weiß der wie groß A ist, daraus kann er wohl schließen wie groß B ist, woraus er wiederum Schließen kann wie groß A ist.</p>
<p>Und dann funktioniert die Vererbung...nicht schlecht. Eigentlich nur eine aufarbeitung des Wertes von ganz unten.</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /> thumbs down mann</p>
</blockquote>
<p>Da fehlt ein ...<br />
Es geht immer so weiter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1457405</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1457405</guid><dc:creator><![CDATA[pizza tonno]]></dc:creator><pubDate>Sun, 17 Feb 2008 10:16:49 GMT</pubDate></item></channel></rss>