<?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[Frage zur Vererbung]]></title><description><![CDATA[<p>Hallo!</p>
<p>Angenommen ich habe eine abstrakte Basisklasse.<br />
Davon erbt eine Klasse, die auch benutzt werden soll, und deswegen die abstrakten Methoden implementiert.</p>
<p>Nun erbt von der erbenden Klasse eine weitere Klasse, die diese Methoden überschreiben soll.</p>
<p>Wie kann ich den Programmierer dazu zwingen, dass er nicht vergisst die abstrakten Methoden neu zu implementieren? Schließlich wurden sie in der ersten erbenden Klasse schon implementiert und deswegen würde kein Compiler meckern, falls er es vergisst und es würde einfach die &quot;falsche&quot; Methode aufgerufen werden.</p>
<p>Ich hoffe ihr wisst was ich meine <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/152548/frage-zur-vererbung</link><generator>RSS for Node</generator><lastBuildDate>Mon, 07 Sep 2026 04:08:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/152548.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 07 Jul 2006 08:56:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zur Vererbung on Fri, 07 Jul 2006 08:56:56 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Angenommen ich habe eine abstrakte Basisklasse.<br />
Davon erbt eine Klasse, die auch benutzt werden soll, und deswegen die abstrakten Methoden implementiert.</p>
<p>Nun erbt von der erbenden Klasse eine weitere Klasse, die diese Methoden überschreiben soll.</p>
<p>Wie kann ich den Programmierer dazu zwingen, dass er nicht vergisst die abstrakten Methoden neu zu implementieren? Schließlich wurden sie in der ersten erbenden Klasse schon implementiert und deswegen würde kein Compiler meckern, falls er es vergisst und es würde einfach die &quot;falsche&quot; Methode aufgerufen werden.</p>
<p>Ich hoffe ihr wisst was ich meine <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1093021</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1093021</guid><dc:creator><![CDATA[Delryn]]></dc:creator><pubDate>Fri, 07 Jul 2006 08:56:56 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Vererbung on Fri, 07 Jul 2006 09:09:21 GMT]]></title><description><![CDATA[<p>Das geht so nicht. Wenn aber die abstrakten Methode aus der Basisklasse neu definiert werden sollen,warum erbt diese zweite Klasse dann ncht gleich von der abstrakten Basisklasse?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1093035</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1093035</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Fri, 07 Jul 2006 09:09:21 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Vererbung on Fri, 07 Jul 2006 09:10:20 GMT]]></title><description><![CDATA[<p>Braunstein schrieb:</p>
<blockquote>
<p>Das geht so nicht. Wenn aber die abstrakten Methode aus der Basisklasse neu definiert werden sollen,warum erbt diese zweite Klasse dann ncht gleich von der abstrakten Basisklasse?</p>
</blockquote>
<p>Weil sie Methoden von der Klasse braucht, die schon von der basisklasse geerbt hat <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1093037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1093037</guid><dc:creator><![CDATA[Delryn]]></dc:creator><pubDate>Fri, 07 Jul 2006 09:10:20 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Vererbung on Fri, 07 Jul 2006 09:12:48 GMT]]></title><description><![CDATA[<p>Das wird so nicht funktionieren. Das kannst du höchstens in die Doku schreiben. Weil jemand, der die ursprünlich abstrakte Methode nicht neu implementiert, wird wohl mit der bereits implementierten Variante _zufrieden_ sein.</p>
<p>Du machst eine Methode dann pur virtual, wenn _Du_ nicht weißt, wie du sie implemntieren sollst. Pur virtual macht man eigentlich nicht um den User zu zwingen es zu implemntieren. Es ist nur ein folge dessen, das Du nicht weißt, was du implementieren sollst.</p>
<p>D.h. also wenn die erste geerbte Klasse schon was implementiert hat, erfüllt sie erstmal ihre Aufgabe. Du kannst somit niemanden zwingen, weil sonst bräuchte man die erste Implementierung nicht machen.</p>
<p>Was Du jetzt hier willst, stellt somit einen Widerspruch da. Und wer mit der ersten Impelemntierung nicht zufrieden ist (sein soll, nach deiner Auffassung) soll halt von der abstrakten Klasse erben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1093038</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1093038</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Fri, 07 Jul 2006 09:12:48 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Vererbung on Fri, 07 Jul 2006 09:16:10 GMT]]></title><description><![CDATA[<p>Delryn schrieb:</p>
<blockquote>
<p>Weil sie Methoden von der Klasse braucht, die schon von der basisklasse geerbt hat <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<p><strong>UserClass is not Base!<br />
UserClass is Interface!</strong></p>
<pre><code class="language-cpp">class Interface
{
public:
	virtual void foo() = 0;
	virtual void foo2() = 0;	
	virtual void foo3() = 0;
};

class Base : public Interface
{
public:
	virtual void foo(){}		
	virtual void foo2(){}
	virtual void foo3(){}
};

class UserClass : public Interface
{
public:
	virtual void foo()
	{
		std::cout &lt;&lt; &quot;UserClass::Interface\n&quot;;
	}	

	virtual void foo2()
	{
		implHelper-&gt;foo2();
	}

	virtual void foo3()
	{
		implHelper-&gt;foo3();
	}

private:
	Base implHelper;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1093045</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1093045</guid><dc:creator><![CDATA[ssm]]></dc:creator><pubDate>Fri, 07 Jul 2006 09:16:10 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Vererbung on Fri, 07 Jul 2006 09:25:24 GMT]]></title><description><![CDATA[<p>Usercalss muss von Base und Interface &quot;erben&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1093056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1093056</guid><dc:creator><![CDATA[templäd]]></dc:creator><pubDate>Fri, 07 Jul 2006 09:25:24 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Vererbung on Fri, 07 Jul 2006 09:26:57 GMT]]></title><description><![CDATA[<p>Die Idee ist prinzipiel gut, scheitert allerdings am Einsatzzweck der Software (Würde zu lange dauern das zu erläutern :D).<br />
Aber das merk ich mir auf jeden Fall <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>
<p>// Also ich meinte jetzt nicht die Idee der Mehrfachvererbung <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1093058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1093058</guid><dc:creator><![CDATA[Delryn]]></dc:creator><pubDate>Fri, 07 Jul 2006 09:26:57 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Vererbung on Fri, 07 Jul 2006 09:38:55 GMT]]></title><description><![CDATA[<p>Wieso Mehrfachvererbung ???</p>
<p>Delryn schrieb:</p>
<blockquote>
<p>Weil sie Methoden von der Klasse braucht, die schon von der basisklasse geerbt hat</p>
</blockquote>
<p>Du erbst ja nur von Base das andere meint eine implementierung von interfaces</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1093066</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1093066</guid><dc:creator><![CDATA[templäd]]></dc:creator><pubDate>Fri, 07 Jul 2006 09:38:55 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur Vererbung on Fri, 07 Jul 2006 11:59:54 GMT]]></title><description><![CDATA[<p><a href="http://groups.google.at/group/comp.lang.c++.moderated/browse_thread/thread/0afd9c54619ad949/4e3bca58c2e9b0d3#4e3bca58c2e9b0d3" rel="nofollow">http://groups.google.at/group/comp.lang.c++.moderated/browse_thread/thread/0afd9c54619ad949/4e3bca58c2e9b0d3#4e3bca58c2e9b0d3</a></p>
<p>schau dir die antwort von <a href="mailto:markbark...@yahoo.com" rel="nofollow">markbark...@yahoo.com</a> an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1093201</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1093201</guid><dc:creator><![CDATA[Giorgio]]></dc:creator><pubDate>Fri, 07 Jul 2006 11:59:54 GMT</pubDate></item></channel></rss>