<?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[Vererbung]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein Problem mit der vererbung, da dieses Thema für mich neu ist möchte ich hier Fragen ob jemand mir dabei helfen kann.<br />
ein Teil von meinem Programmm:</p>
<pre><code class="language-cpp">class freizeitrad : public fahrrad
{
	private:
		double spass;
	public:
		void abschliessen(bool disziplin);
		double geniessen (double genuss)
		{
			return (genuss+spass);
		};
		freizeitrad (double spass_in, int rad_in) : fahrrad (rad_in)
		{
			spass = spass_in;
		}
};

class liegerad : public freizeitrad
{
	public:
		liegerad (double spass_in = 300.0, int rad_in = 2) : freizeitrad (spass_in, rad_in){}
		double geniessen (double genuss)
		{ 
			spass = 10*genuss;
			return (spass);
		}; //double spass_in = 300.0, int rad_in = 2
};
</code></pre>
<p>Aber ich bekomme immer die folgende Fehlermeldung :<br />
<strong>&quot;freizeitrad::spass&quot;: Kein Zugriff auf private Member, dessen Deklaration in der freizeitrad-Klasse erfolgte.</strong> Zeile 23</p>
<p>Was habe ich hier falsch gemacht?</p>
<p>MfG Pava</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/265006/vererbung</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Jul 2026 23:21:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/265006.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 16 Apr 2010 09:32:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vererbung on Fri, 16 Apr 2010 09:32:22 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein Problem mit der vererbung, da dieses Thema für mich neu ist möchte ich hier Fragen ob jemand mir dabei helfen kann.<br />
ein Teil von meinem Programmm:</p>
<pre><code class="language-cpp">class freizeitrad : public fahrrad
{
	private:
		double spass;
	public:
		void abschliessen(bool disziplin);
		double geniessen (double genuss)
		{
			return (genuss+spass);
		};
		freizeitrad (double spass_in, int rad_in) : fahrrad (rad_in)
		{
			spass = spass_in;
		}
};

class liegerad : public freizeitrad
{
	public:
		liegerad (double spass_in = 300.0, int rad_in = 2) : freizeitrad (spass_in, rad_in){}
		double geniessen (double genuss)
		{ 
			spass = 10*genuss;
			return (spass);
		}; //double spass_in = 300.0, int rad_in = 2
};
</code></pre>
<p>Aber ich bekomme immer die folgende Fehlermeldung :<br />
<strong>&quot;freizeitrad::spass&quot;: Kein Zugriff auf private Member, dessen Deklaration in der freizeitrad-Klasse erfolgte.</strong> Zeile 23</p>
<p>Was habe ich hier falsch gemacht?</p>
<p>MfG Pava</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1883734</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883734</guid><dc:creator><![CDATA[pava]]></dc:creator><pubDate>Fri, 16 Apr 2010 09:32:22 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Fri, 16 Apr 2010 09:34:18 GMT]]></title><description><![CDATA[<p>Private member sind für abgeleitete Klassen nicht sichtbar. Mach spass anstatt private protected</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1883736</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883736</guid><dc:creator><![CDATA[Tobias Gerg]]></dc:creator><pubDate>Fri, 16 Apr 2010 09:34:18 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Fri, 16 Apr 2010 09:44:10 GMT]]></title><description><![CDATA[<p>Tobias Gerg schrieb:</p>
<blockquote>
<p>Private member sind für abgeleitete Klassen nicht sichtbar. Mach spass anstatt private protected</p>
</blockquote>
<p>danke für die schnelle Antwort. Also wenn ich das jetzt rchtig verstanden habe, du meinst wenn ich private lösche klappt das? und dann sieht es so aus:</p>
<pre><code class="language-cpp">class freizeitrad : public fahrrad
{

		double spass;
	public:
		void abschliessen(bool disziplin);
		double geniessen (double genuss)
		{
			return (genuss+spass);
		};
		freizeitrad (double spass_in, int rad_in) : fahrrad (rad_in)
		{
			spass = spass_in;
		}
</code></pre>
<p>oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1883740</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883740</guid><dc:creator><![CDATA[pava]]></dc:creator><pubDate>Fri, 16 Apr 2010 09:44:10 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Fri, 16 Apr 2010 09:46:45 GMT]]></title><description><![CDATA[<p>Tobias Gerg schrieb:</p>
<blockquote>
<p>Private member sind für abgeleitete Klassen nicht sichtbar. <strong>Mach spass anstatt private protected</strong></p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1883741</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883741</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 16 Apr 2010 09:46:45 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Fri, 16 Apr 2010 10:01:53 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Tobias Gerg schrieb:</p>
<blockquote>
<p>Private member sind für abgeleitete Klassen nicht sichtbar. <strong>Mach spass anstatt private protected</strong></p>
</blockquote>
</blockquote>
<p>Danke aber das habe ich schon gelesen was Tobias Gerg geschrieben hat, verstanden habe ich es nicht ganz. Also bei mir in der Aufgabe steht, dass Spass Private deklariert werden muss</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1883746</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883746</guid><dc:creator><![CDATA[pava]]></dc:creator><pubDate>Fri, 16 Apr 2010 10:01:53 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Fri, 16 Apr 2010 10:05:32 GMT]]></title><description><![CDATA[<p>pava schrieb:</p>
<blockquote>
<p>Tobias Gerg schrieb:</p>
<blockquote>
<p>Private member sind für abgeleitete Klassen nicht sichtbar. Mach spass anstatt private protected</p>
</blockquote>
<p>danke für die schnelle Antwort. Also wenn ich das jetzt rchtig verstanden habe, du meinst wenn ich private lösche klappt das? und dann sieht es so aus:</p>
<pre><code>class freizeitrad : public fahrrad
{
	[u]protected:[/u]
		double spass;
	public:
		void abschliessen(bool disziplin);
		double geniessen (double genuss)
		{
			return (genuss+spass);
		};
		freizeitrad (double spass_in, int rad_in) : fahrrad (rad_in)
		{
			spass = spass_in;
		}
};
</code></pre>
<p>oder?</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1883750</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883750</guid><dc:creator><![CDATA[Tobias Gerg]]></dc:creator><pubDate>Fri, 16 Apr 2010 10:05:32 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Fri, 16 Apr 2010 10:08:33 GMT]]></title><description><![CDATA[<p>pava schrieb:</p>
<blockquote>
<p>Also wenn ich das jetzt rchtig verstanden habe, du meinst wenn ich private lösche klappt das?</p>
</blockquote>
<p>Dann wäre es weiterhin privat, da die Standardsichtbarkeit in Klassen nun mal privat ist. Unter C++ gibt es: public, protected, private.</p>
<p>pava schrieb:</p>
<blockquote>
<p>...Danke aber das habe ich schon gelesen was Tobias Gerg geschrieben hat, verstanden habe ich es nicht ganz...</p>
</blockquote>
<p>Eben statt &quot;private&quot; ein &quot;protected&quot; schreiben, wie hätte man den Satz bitte anders interpretieren können. Da steht nichts davon das du private entfernen und durch nichts ersetzen sollst.</p>
<p>pava schrieb:</p>
<blockquote>
<p>Also bei mir in der Aufgabe steht, dass Spass Private deklariert werden muss</p>
</blockquote>
<p>Dann ist der Zugriff in einer abgeleiteten Klassen unmöglich. Im Gegensatz zu &quot;private&quot; erlaubt &quot;protected&quot; gerade dieses, das man aus einer abgeleiteten Klasse darauf zugreifen darf.</p>
<p>Eine Alternative wäre nur die Variable privat zu lassen, und ihren Zugriff über Methoden zu gewährleisten, die entweder protected oder public sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1883752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883752</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Fri, 16 Apr 2010 10:08:33 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Fri, 16 Apr 2010 10:09:33 GMT]]></title><description><![CDATA[<p>wow das klappt, danke schön Tobias Gerg, ich bin noch anfänger deswegen habe ich es nicht sofort verstanden was du meintest. eine frage hätte ich noch warum klappt es mit</p>
<pre><code class="language-cpp">protected
</code></pre>
<p>und nicht mit</p>
<pre><code class="language-cpp">private
</code></pre>
<p>, also was ist der unterschied?</p>
<p>danke nochmal.</p>
<p>Pava</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1883753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883753</guid><dc:creator><![CDATA[pava]]></dc:creator><pubDate>Fri, 16 Apr 2010 10:09:33 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Fri, 16 Apr 2010 10:14:36 GMT]]></title><description><![CDATA[<p>pava schrieb:</p>
<blockquote>
<p>...eine frage hätte ich noch warum klappt es mit</p>
<pre><code class="language-cpp">protected
</code></pre>
<p>und nicht mit</p>
<pre><code class="language-cpp">private
</code></pre>
<p>, also was ist der unterschied?</p>
</blockquote>
<pre><code>Zugriff möglich?
           In Klasse   In abgeleiteter Klasse   Von außen
public        ja                 ja                ja
protected     ja                 ja               nein
privat        ja                nein              nein
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1883754</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883754</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Fri, 16 Apr 2010 10:14:36 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Fri, 16 Apr 2010 10:22:15 GMT]]></title><description><![CDATA[<p>pava schrieb:</p>
<blockquote>
<p>warum klappt es mit</p>
<pre><code class="language-cpp">protected
</code></pre>
<p>und nicht mit</p>
<pre><code class="language-cpp">private
</code></pre>
<p>, also was ist der unterschied?</p>
</blockquote>
<p>Das sollte im C++-Buch deiner Wahl nachzulesen sein. Dies ist also der ideale Zeitpunkt das zu tun <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="🙂"
    /><br />
Allgemein ist es bei solchen Fragen bzw. wenn du Tips kriegst wo du einzelne Schlagworte noch nicht ganz verstehst ratsam, dich erstmal im Buch oder auch im Netz umzusehn ob du näheres rausfinden kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1883760</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883760</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 16 Apr 2010 10:22:15 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Fri, 16 Apr 2010 15:18:48 GMT]]></title><description><![CDATA[<p>hallo,<br />
so ich habe jetzt schon das nächste Problem, soweit ich weiss haben void fonktionen keinen Rückgabewet, aber bei der aufgabe wird das irgenwie verlangt, ich weiss nicht ob ich das richtig verstanden habe :</p>
<pre><code class="language-cpp">public Methoden:
double bereitstellen (double treibstoff); // Zählt zum Parameter treibstoff
// das Ergebnis von tanken() dazu, nimmt das
// Ergebnis als Treibstoffmenge und ruft
// bereitstellen()der Basisklasse auf
 private Methoden:
void tanken(); // Gibt die Tankmenge 2000.0 zurueck
</code></pre>
<p>Muss man dan eine neue Variable zb: Tankmenge in der funktion tanken deklarieren damit es geht? man kann leider nicht einfach schreiben :</p>
<pre><code class="language-cpp">return (2000.0);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1883899</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883899</guid><dc:creator><![CDATA[pava]]></dc:creator><pubDate>Fri, 16 Apr 2010 15:18:48 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Fri, 16 Apr 2010 15:08:29 GMT]]></title><description><![CDATA[<p>pava schrieb:</p>
<blockquote>
<pre><code class="language-cpp">public Methoden:
</code></pre>
</blockquote>
<p>Das heißt wenn schon:</p>
<pre><code class="language-cpp">public:
</code></pre>
<p>Es gibt kein &quot;public Methoden:&quot;</p>
<p>pava schrieb:</p>
<blockquote>
<p>hallo,<br />
so ich habe jetzt schon das nächste Problem, soweit ich weiss haben void fonktionen keinen Rückgabewet, aber bei der aufgabe wird das irgenwie verlangt, ich weiss nicht ob ich das richtig verstanden habe :</p>
</blockquote>
<p>Eine void-Funktion KANN keine Werte zurückgeben. Daher nützt dir auch kein &quot;return 2000.0;&quot; etwas. Was ich mir vorstellen könnte ist, das hier die Membervariablen geändert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1883906</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883906</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Fri, 16 Apr 2010 15:08:29 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Fri, 16 Apr 2010 15:14:49 GMT]]></title><description><![CDATA[<p>&quot;public methoden&quot; so hat der Professor die Aufgabe gestellt, damit mein er :</p>
<pre><code class="language-cpp">public :
double bereitstellen (double treibstoff);
private :
void tanken();
</code></pre>
<p>so jetzt versteht es auch jeder hoffentlich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1883909</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883909</guid><dc:creator><![CDATA[pava]]></dc:creator><pubDate>Fri, 16 Apr 2010 15:14:49 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Fri, 16 Apr 2010 17:00:12 GMT]]></title><description><![CDATA[<p>Nur so als Einwurf: Es ist nicht immer ratsam, <code>private</code> durch <code>protected</code> zu ersetzen. Oft ist Kapselung wichtiger.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1883956</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883956</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 16 Apr 2010 17:00:12 GMT</pubDate></item></channel></rss>