<?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[private und public Vererbung]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe jetzt gehört, dass bei einer public Vererbung die Schnittstelle geerbt wird und bei einer private Vererbung die Implementierung. Stimmt das? Und wenn ja, wie ist das gemeint? Vielleicht kann mir das ja mal jemand anhand eines Beispiels erklären?</p>
<p>Vielen Dank!!<br />
Gruß<br />
Ingo</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/254988/private-und-public-vererbung</link><generator>RSS for Node</generator><lastBuildDate>Sat, 12 Sep 2026 06:59:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/254988.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 24 Nov 2009 07:32:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to private und public Vererbung on Tue, 24 Nov 2009 07:32:43 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe jetzt gehört, dass bei einer public Vererbung die Schnittstelle geerbt wird und bei einer private Vererbung die Implementierung. Stimmt das? Und wenn ja, wie ist das gemeint? Vielleicht kann mir das ja mal jemand anhand eines Beispiels erklären?</p>
<p>Vielen Dank!!<br />
Gruß<br />
Ingo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1812720</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1812720</guid><dc:creator><![CDATA[Ingoo]]></dc:creator><pubDate>Tue, 24 Nov 2009 07:32:43 GMT</pubDate></item><item><title><![CDATA[Reply to private und public Vererbung on Tue, 24 Nov 2009 08:32:21 GMT]]></title><description><![CDATA[<p>Bei der privaten Vererbung wird die Schnittstelle nicht vererbt. Die private Vererbung ist Membership sehr ähnlich, wobei letzteres meistens vorzuziehen ist, ausser wenn die Implemetierung der Basisklasse durch Vererbung angepasst werden soll.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class base
{
public:
	void foo() 
	{ 
		std::cout &lt;&lt; &quot;foooo\n&quot;; 
	}
};

class D : private base
{
public:
	void bogus()
	{
		foo();
	}
};

int main()
{
	D d;
	d.foo();    // Fehler, kein Zugang zur Schnittstelle von base
	d.bogus();  // Gut
	return 0;
}
</code></pre>
<p>Das gleiche ohne Vererbung und damit weniger enge VErwandschaft</p>
<pre><code class="language-cpp">class C
{
public:
	void bogus()
	{
		b_.foo();
	}
private:
	base b_;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1812735</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1812735</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Tue, 24 Nov 2009 08:32:21 GMT</pubDate></item><item><title><![CDATA[Reply to private und public Vererbung on Tue, 24 Nov 2009 19:37:21 GMT]]></title><description><![CDATA[<p>danke für das schöne Beispiel! Habs nun verstanden.</p>
<p>Gruß<br />
Ingo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1813080</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1813080</guid><dc:creator><![CDATA[Ingoo]]></dc:creator><pubDate>Tue, 24 Nov 2009 19:37:21 GMT</pubDate></item><item><title><![CDATA[Reply to private und public Vererbung on Tue, 24 Nov 2009 20:24:01 GMT]]></title><description><![CDATA[<p>Herb Sutter (Autor von <em>Exceptional C++</em>) empfiehlt, private Vererbung nur zu benutzen, wenn Zugriff auf <code>protected</code> -Member, Überschreibung einer virtuellen Funktion oder Konstruktion des Objekts vor anderen Basisklassenobjekten erforderlich ist. Aggregation stellt im Normalfall also die bessere Alternative dar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1813094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1813094</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 24 Nov 2009 20:24:01 GMT</pubDate></item></channel></rss>