<?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[<pre><code class="language-cpp">class x{

public: funktion1();

protected:funktion2();

private: funktion3();

};

class y:protected x{};

void main (void){

y objekt;   // Instanz der Klasse y  mit Namen objekt anlegen

y.funktion1();
y.funktion2();
y.funktion3();
}
</code></pre>
<p>Welcher Funktionsaufruf wäre denn jetzt nicht mehr möglich ?<br />
Die Klasse y erbt von klasse x protected. Was bedeutet das für die Instanz<br />
mit Namen objekt</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/260260/vererbung</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 05:28:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/260260.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 02 Feb 2010 21:52:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vererbung on Tue, 02 Feb 2010 21:52:52 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class x{

public: funktion1();

protected:funktion2();

private: funktion3();

};

class y:protected x{};

void main (void){

y objekt;   // Instanz der Klasse y  mit Namen objekt anlegen

y.funktion1();
y.funktion2();
y.funktion3();
}
</code></pre>
<p>Welcher Funktionsaufruf wäre denn jetzt nicht mehr möglich ?<br />
Die Klasse y erbt von klasse x protected. Was bedeutet das für die Instanz<br />
mit Namen objekt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1849481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849481</guid><dc:creator><![CDATA[blurry245]]></dc:creator><pubDate>Tue, 02 Feb 2010 21:52:52 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Tue, 02 Feb 2010 22:09:20 GMT]]></title><description><![CDATA[<p>Noch nee Frage.</p>
<p>Müssen pure virtual Funktionen außerhalb der klasse auch noch<br />
definiert werden ? Wofür frag ich mich gerade.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1849489</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849489</guid><dc:creator><![CDATA[blurry154]]></dc:creator><pubDate>Tue, 02 Feb 2010 22:09:20 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Tue, 02 Feb 2010 22:12:53 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>meines Wissens ist keiner der drei Methodenaufrufe erlaubt, weil alle Methoden durch die protected-Vererbung protected bzw. private (funktion3) sind.</p>
<p>Siehe dazu auch: <a href="http://tutorial.schornboeck.net/vererbung.htm" rel="nofollow">http://tutorial.schornboeck.net/vererbung.htm</a></p>
<p>Deine zweite Frage verstehe ich nicht genau.</p>
<p>Ein</p>
<pre><code class="language-cpp">virtual void function() = 0;
</code></pre>
<p>in der Basisklasse sollte doch reichen, oder was meinst du genau?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1849492</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849492</guid><dc:creator><![CDATA[vererber]]></dc:creator><pubDate>Tue, 02 Feb 2010 22:12:53 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Tue, 02 Feb 2010 22:15:30 GMT]]></title><description><![CDATA[<p>Warum probierst du das nicht einfach aus?!</p>
<p>btw:<br />
Die fehlen die Typen bei den Funktionen und implementierungen sowieso. Das heisst, dass der Code so oder so nicht kompiliert (und auch nicht linken würde, wenn die Typen da wären).<br />
Dazu kommt noch, dass es <code>int main</code> heisst und nicht <code>void main</code> !</p>
<p>Bei deiner Anschlussfrage komme ich nicht draus. Du hast da keine virtuellen Funktionen. Und klar wenn du sie benutzen willst musst du sie implementieren.</p>
<p>Zeig doch besser lauffähigen Code. Dann hast du nämlich die Antwort bereits.. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>//EDIT<br />
Natürlich sind alle 3 Aufrufe nicht erlaubt, da sie in der abgeleiteten Klasse nach ausse alle privat sind. (Aber das hätte dir auch ein Compiler sagen können..)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1849494</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849494</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 02 Feb 2010 22:15:30 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Tue, 02 Feb 2010 22:18:32 GMT]]></title><description><![CDATA[<p>@ vererber</p>
<p>ich mein normalerweise deklariert man eine Funktion in der Klasse und<br />
definiert sie außerhalb</p>
<p>z.b.</p>
<pre><code class="language-cpp">x::funktion (){

   hier folgt die Definition

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1849497</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849497</guid><dc:creator><![CDATA[blurry154]]></dc:creator><pubDate>Tue, 02 Feb 2010 22:18:32 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Tue, 02 Feb 2010 22:20:07 GMT]]></title><description><![CDATA[<p>aha drakon.</p>
<p>Es gehn tatsächlich alle aufrufe nicht.</p>
<p>Leider hab ich bis heute nicht verstanden was protected Vererbung<br />
von private Vererbung unterscheiden soll <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1849500</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849500</guid><dc:creator><![CDATA[blurry254]]></dc:creator><pubDate>Tue, 02 Feb 2010 22:20:07 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Tue, 02 Feb 2010 22:21:44 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">virtual void function() = 0;
</code></pre>
<p>Das hier ist doch nur eine Deklaration , schließlich fehlen die {} klammern <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1849502</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849502</guid><dc:creator><![CDATA[blurry25345]]></dc:creator><pubDate>Tue, 02 Feb 2010 22:21:44 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Tue, 02 Feb 2010 22:26:11 GMT]]></title><description><![CDATA[<p>sorry nochmal</p>
<p>natürlich hätte es oben so heissen solln</p>
<pre><code class="language-cpp">objekt.funktion1(); 
objekt.funktion2(); 
objekt.funktion3();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1849505</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849505</guid><dc:creator><![CDATA[blurry656]]></dc:creator><pubDate>Tue, 02 Feb 2010 22:26:11 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Tue, 02 Feb 2010 22:41:31 GMT]]></title><description><![CDATA[<p>blurry254 schrieb:</p>
<blockquote>
<p>Leider hab ich bis heute nicht verstanden was protected Vererbung<br />
von private Vererbung unterscheiden soll <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
</blockquote>
<p>Ganz einfach. Wenn du privat erbst, dann kann, wenn du erneut eine Klasse ableitest (also dann die dritte) auf keine public und privat Funktionen zugreifen. Bei protected schon. (Nach aussen ist aber, wie du siehst privat)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1849512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849512</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 02 Feb 2010 22:41:31 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Tue, 02 Feb 2010 22:45:58 GMT]]></title><description><![CDATA[<p>Es ist doch egal ob ich protected oder private vererbe,<br />
in beiden Fällen hat eine Instanz keinerlei Zugriff mehr <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1849515</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849515</guid><dc:creator><![CDATA[blurry652]]></dc:creator><pubDate>Tue, 02 Feb 2010 22:45:58 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Tue, 02 Feb 2010 23:01:31 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class y:protected x{}; 

class z:public y{};
</code></pre>
<p>die Klasse z kann jetzt nicht mehr auf Klasse x Elemente zugreifen ???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1849524</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849524</guid><dc:creator><![CDATA[blurry825]]></dc:creator><pubDate>Tue, 02 Feb 2010 23:01:31 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Tue, 02 Feb 2010 23:33:48 GMT]]></title><description><![CDATA[<p>Keiner mehr da ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1849528</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849528</guid><dc:creator><![CDATA[blurry8745]]></dc:creator><pubDate>Tue, 02 Feb 2010 23:33:48 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Tue, 02 Feb 2010 23:54:22 GMT]]></title><description><![CDATA[<p>Du hast 3 Möglichkeiten.<br />
1. Du fragst hier jedes Detail nach und bekommst irgendwann keine Antwort mehr oder<br />
2. Du liest es in einem Buch oder Online nach oder<br />
3. Du probierst es einfach mal aus</p>
<p>Ich persönlich mag Variante 1 nicht. 2 und 3 sind aber schon sehr gut und können wahrscheinlich die meisten Fragen beantworten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1849533</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849533</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 02 Feb 2010 23:54:22 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Wed, 03 Feb 2010 00:03:50 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class x{ 

public: void funktion1(){}; 

protected:void funktion2(){}; 

private: void funktion3(){}; 

}; 

class y:protected x{

public:

	void foo(){ funktion2(); } 

}; 

class z:public y{

public:

	void foo(){funktion2();}

};
</code></pre>
<p>Es kommt kein Fehler , sry ich verstehs einfach nicht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1849535</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849535</guid><dc:creator><![CDATA[blurry89]]></dc:creator><pubDate>Wed, 03 Feb 2010 00:03:50 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Wed, 03 Feb 2010 00:25:02 GMT]]></title><description><![CDATA[<p>ahhhhhhhh</p>
<p>bei protected geht es ja , aber nicht bei private</p>
<p>Klar dass kein Fehler kam .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1849540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849540</guid><dc:creator><![CDATA[blurry8676]]></dc:creator><pubDate>Wed, 03 Feb 2010 00:25:02 GMT</pubDate></item></channel></rss>