<?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[Mehrfachvererbung von gemeinsamer Basis aus]]></title><description><![CDATA[<p>Wäre bei folgeder Klassenhierachie immer noch nur ein gemeinsames A-Objekt in jedem F-Objekt vorhanden?<br />
<a href="http://www.bilder-hochladen.net/files/em9m-1-png.html" rel="nofollow">http://www.bilder-hochladen.net/files/thumbs/em9m-1.png</a></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/263744/mehrfachvererbung-von-gemeinsamer-basis-aus</link><generator>RSS for Node</generator><lastBuildDate>Tue, 01 Sep 2026 17:52:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/263744.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 25 Mar 2010 20:14:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Mehrfachvererbung von gemeinsamer Basis aus on Thu, 25 Mar 2010 20:14:02 GMT]]></title><description><![CDATA[<p>Wäre bei folgeder Klassenhierachie immer noch nur ein gemeinsames A-Objekt in jedem F-Objekt vorhanden?<br />
<a href="http://www.bilder-hochladen.net/files/em9m-1-png.html" rel="nofollow">http://www.bilder-hochladen.net/files/thumbs/em9m-1.png</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1873935</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1873935</guid><dc:creator><![CDATA[halo]]></dc:creator><pubDate>Thu, 25 Mar 2010 20:14:02 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrfachvererbung von gemeinsamer Basis aus on Thu, 25 Mar 2010 20:23:39 GMT]]></title><description><![CDATA[<p>Das sollte keine Probleme geben. Wichtig ist es, dass man die gemeinsame Klasse virtuell erbt, wenn man es wie hier mit dem diamond of death zu tun hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1873938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1873938</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 25 Mar 2010 20:23:39 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrfachvererbung von gemeinsamer Basis aus on Thu, 25 Mar 2010 20:27:03 GMT]]></title><description><![CDATA[<p>ok super danke für die schnelle Antwort</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1873940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1873940</guid><dc:creator><![CDATA[halo]]></dc:creator><pubDate>Thu, 25 Mar 2010 20:27:03 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrfachvererbung von gemeinsamer Basis aus on Thu, 25 Mar 2010 20:27:49 GMT]]></title><description><![CDATA[<p>sollte das virtual dann nicht direkt unter F stehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1873941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1873941</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 25 Mar 2010 20:27:49 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrfachvererbung von gemeinsamer Basis aus on Thu, 25 Mar 2010 20:29:47 GMT]]></title><description><![CDATA[<p>hmm das wäre ungünstig^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1873943</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1873943</guid><dc:creator><![CDATA[halo]]></dc:creator><pubDate>Thu, 25 Mar 2010 20:29:47 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrfachvererbung von gemeinsamer Basis aus on Thu, 25 Mar 2010 20:34:06 GMT]]></title><description><![CDATA[<p>halo schrieb:</p>
<blockquote>
<p>hmm das wäre ungünstig^^</p>
</blockquote>
<p>Ist bei Dir die Basisklasse unten? Dann ist alles so, wie Du wünsch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1873946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1873946</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 25 Mar 2010 20:34:06 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrfachvererbung von gemeinsamer Basis aus on Thu, 25 Mar 2010 20:35:05 GMT]]></title><description><![CDATA[<p>ja richtig Basisklasse ist A, danke für die für die Antworten <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/1873948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1873948</guid><dc:creator><![CDATA[halo]]></dc:creator><pubDate>Thu, 25 Mar 2010 20:35:05 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrfachvererbung von gemeinsamer Basis aus on Sat, 12 Jun 2010 06:57:53 GMT]]></title><description><![CDATA[<p>So ich komme nochma auf diesen älteren Thread zurück:<br />
Würde es auch mit 3 virtual abgeleiteten Klassen Funktionieren?</p>
<p>hier ein Bild zur Verdeutlichung:</p>
<p><a href="http://img812.imageshack.us/img812/4631/10904440.png" rel="nofollow">http://img812.imageshack.us/img812/4631/10904440.png</a></p>
<p>In C soll es jetzt wieder nur ein gemeinsames A Objekt geben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1911056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1911056</guid><dc:creator><![CDATA[halo]]></dc:creator><pubDate>Sat, 12 Jun 2010 06:57:53 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrfachvererbung von gemeinsamer Basis aus on Sat, 12 Jun 2010 10:18:53 GMT]]></title><description><![CDATA[<p>Warum nicht? - Ich wüsste nichts von einer Anzahl Beschränkung..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1911120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1911120</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 12 Jun 2010 10:18:53 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrfachvererbung von gemeinsamer Basis aus on Sat, 12 Jun 2010 10:33:56 GMT]]></title><description><![CDATA[<p>Ja, es funktioniert.</p>
<p>Hier ein kurzes Beispiel:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
class A{
int a;
};

class B1 : virtual public A{
};

class B2 : virtual public A{
};

class B3 : virtual public A{
};

class C : public B1, public B2, public B3{
};

int main()
{
        C c;
        A&amp; aRef = c;
        B1&amp; b1Ref = c;
        B2&amp; b2Ref = c;
        B3&amp; b3Ref = c;
        C&amp; cRef = c;
        std::cout &lt;&lt; &amp;static_cast&lt;A&amp;&gt;(aRef) &lt;&lt; std::endl;
        std::cout &lt;&lt; &amp;static_cast&lt;A&amp;&gt;(b1Ref) &lt;&lt; std::endl;
        std::cout &lt;&lt; &amp;static_cast&lt;A&amp;&gt;(b2Ref) &lt;&lt; std::endl;
        std::cout &lt;&lt; &amp;static_cast&lt;A&amp;&gt;(b3Ref) &lt;&lt; std::endl;
        std::cout &lt;&lt; &amp;static_cast&lt;A&amp;&gt;(cRef) &lt;&lt; std::endl;
}
</code></pre>
<blockquote>
<p>0xbffff9c0<br />
0xbffff9c0<br />
0xbffff9c0<br />
0xbffff9c0<br />
0xbffff9c0</p>
</blockquote>
<p>Wichtig dabei ist (afaik) nur die erste Vererbung:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
class A{
int a;
};

class B1 : virtual public A{
};

class B2 : virtual public A{
};

class B3 : virtual public A{
};

class C1 : public B1, public B2{
};

class C2 : public B2, public B3{
};

class D : public C1, public C2{
};

int main()
{
        D d;
        A&amp; aRef = d;
        C1&amp; c1Ref = d;
        C2&amp; c2Ref = d;
        B1&amp; b1Ref = d;
        B2&amp; b2Ref1 = c1Ref;
        B2&amp; b2Ref2 = c2Ref;
        B3&amp; b3Ref = d;
        D&amp; dRef = d;
        std::cout &lt;&lt; &amp;static_cast&lt;A&amp;&gt;(aRef) &lt;&lt; std::endl;
        std::cout &lt;&lt; &amp;static_cast&lt;A&amp;&gt;(b1Ref) &lt;&lt; std::endl;
        std::cout &lt;&lt; &amp;static_cast&lt;A&amp;&gt;(b2Ref1) &lt;&lt; &quot; &quot; &lt;&lt; &amp;c1Ref &lt;&lt; std::endl;
        std::cout &lt;&lt; &amp;static_cast&lt;A&amp;&gt;(b2Ref2) &lt;&lt; &quot; &quot; &lt;&lt; &amp;c2Ref &lt;&lt; std::endl;
        std::cout &lt;&lt; &amp;static_cast&lt;A&amp;&gt;(b3Ref) &lt;&lt; std::endl;
        std::cout &lt;&lt; &amp;static_cast&lt;A&amp;&gt;(c1Ref) &lt;&lt; std::endl;
        std::cout &lt;&lt; &amp;static_cast&lt;A&amp;&gt;(c2Ref) &lt;&lt; std::endl;
        std::cout &lt;&lt; &amp;static_cast&lt;A&amp;&gt;(dRef) &lt;&lt; std::endl;
}
</code></pre>
<blockquote>
<p>0xbffff9bc<br />
0xbffff9bc<br />
0xbffff9bc 0xbffff9ac<br />
0xbffff9bc 0xbffff9b4<br />
0xbffff9bc<br />
0xbffff9bc<br />
0xbffff9bc<br />
0xbffff9bc</p>
</blockquote>
<p>Alle besitzen das gleiche Basis-Objekt, obwohl es sich sogar bei c1Ref und c2Ref um Refenzen auf unterschiedliche Objekte handelt.</p>
<p>Wann wird hier eigentlich die Australien-Fahne als Icon hinzugefügt?</p>
<p>&quot;Ozzie, Ozzie, Ozzie&quot; - &quot;Oi, oi, oi&quot;<br />
&quot;Ozzie, Ozzie, Ozzie&quot; - &quot;Oi, oi, oi&quot;<br />
&quot;Ozzie&quot; - &quot;Oi&quot;<br />
&quot;Ozzie&quot; - &quot;Oi&quot;<br />
&quot;Ozzie, Ozzie, Ozzie&quot; - &quot;Oi, oi, oi&quot;</p>
<p>EDIT: Member Variable in Klasse A hinzugefügt.</p>
<p>Gruß aus DownUnder,<br />
CSpille</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1911126</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1911126</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 12 Jun 2010 10:33:56 GMT</pubDate></item></channel></rss>