<?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[allgemeine fragen zu interfaces(abstrakte klassen)]]></title><description><![CDATA[<p>Hallo,<br />
Ich hätte ein paar allgemeine Fragen:</p>
<p>Bezüglich abstrakte Klassen (im Speziellen Interfaces):</p>
<p>Ist es richtig, dass sobald eine Methode rein virtuell (also mit virtual und = 0) ist, die Klasse abstrakt ist?</p>
<p>Ist es richtig, dass wenn alle Methoden rein virtuell sind, es sich um ein Interface handelt?</p>
<p>Klassen die von der Interface Klasse erben müssen die rein virtuellen Methoden überschreiben. Dürfen die dann auch neue Methoden implementieren?</p>
<p>Kann ich in einem abstrakten Interface problemlos einen Zeiger auf ein anderes Interface definieren? (andres interface is somit mittels komposition im einen interface drin)</p>
<p>und Wenn ich ein interface IA habe:<br />
und zwei Klassen A und AA die von IA erben dann kann/muss überall wo IA erwartet wird A oder AA verwendet werden. ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/239678/allgemeine-fragen-zu-interfaces-abstrakte-klassen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 10:03:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/239678.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 26 Apr 2009 16:20:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to allgemeine fragen zu interfaces(abstrakte klassen) on Sun, 26 Apr 2009 16:20:06 GMT]]></title><description><![CDATA[<p>Hallo,<br />
Ich hätte ein paar allgemeine Fragen:</p>
<p>Bezüglich abstrakte Klassen (im Speziellen Interfaces):</p>
<p>Ist es richtig, dass sobald eine Methode rein virtuell (also mit virtual und = 0) ist, die Klasse abstrakt ist?</p>
<p>Ist es richtig, dass wenn alle Methoden rein virtuell sind, es sich um ein Interface handelt?</p>
<p>Klassen die von der Interface Klasse erben müssen die rein virtuellen Methoden überschreiben. Dürfen die dann auch neue Methoden implementieren?</p>
<p>Kann ich in einem abstrakten Interface problemlos einen Zeiger auf ein anderes Interface definieren? (andres interface is somit mittels komposition im einen interface drin)</p>
<p>und Wenn ich ein interface IA habe:<br />
und zwei Klassen A und AA die von IA erben dann kann/muss überall wo IA erwartet wird A oder AA verwendet werden. ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1701561</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1701561</guid><dc:creator><![CDATA[cryps]]></dc:creator><pubDate>Sun, 26 Apr 2009 16:20:06 GMT</pubDate></item><item><title><![CDATA[Reply to allgemeine fragen zu interfaces(abstrakte klassen) on Sun, 26 Apr 2009 16:32:25 GMT]]></title><description><![CDATA[<p>cryps schrieb:</p>
<blockquote>
<p>Hallo,<br />
Ich hätte ein paar allgemeine Fragen:</p>
<p>Bezüglich abstrakte Klassen (im Speziellen Interfaces):</p>
<p>Ist es richtig, dass sobald eine Methode rein virtuell (also mit virtual und = 0) ist, die Klasse abstrakt ist?</p>
</blockquote>
<p>Ja.</p>
<blockquote>
<p>Ist es richtig, dass wenn alle Methoden rein virtuell sind, es sich um ein Interface handelt?</p>
</blockquote>
<p>Nein. Die Klasse könnte noch Datenmember haben, die IMHO nicht zu einem Interface gehören dürfen.</p>
<blockquote>
<p>Klassen die von der Interface Klasse erben müssen die rein virtuellen Methoden überschreiben. Dürfen die dann auch neue Methoden implementieren?</p>
</blockquote>
<p>Ja.</p>
<blockquote>
<p>Kann ich in einem abstrakten Interface problemlos einen Zeiger auf ein anderes Interface definieren? (andres interface is somit mittels komposition im einen interface drin)</p>
</blockquote>
<p>Ich weiss nicht, ob ich dich richtig verstanden habe, aber ja. <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>und Wenn ich ein interface IA habe:<br />
und zwei Klassen A und AA die von IA erben dann kann/muss überall wo IA erwartet wird A oder AA verwendet werden. ?</p>
</blockquote>
<p>Streich das muss, dann ist die Antwort ja.</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1701567</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1701567</guid><dc:creator><![CDATA[*rant*]]></dc:creator><pubDate>Sun, 26 Apr 2009 16:32:25 GMT</pubDate></item><item><title><![CDATA[Reply to allgemeine fragen zu interfaces(abstrakte klassen) on Sun, 26 Apr 2009 16:41:38 GMT]]></title><description><![CDATA[<blockquote>
<p>Ist es richtig, dass sobald eine Methode rein virtuell (also mit virtual und = 0) ist, die Klasse abstrakt ist?</p>
</blockquote>
<p>Ja.</p>
<blockquote>
<p>Ist es richtig, dass wenn alle Methoden rein virtuell sind, es sich um ein Interface handelt?</p>
</blockquote>
<p>Kannst Du so betrachten wenn Du möchtest.</p>
<blockquote>
<p>Klassen die von der Interface Klasse erben müssen die rein virtuellen Methoden überschreiben. Dürfen die dann auch neue Methoden implementieren?</p>
</blockquote>
<p>Ja: entweder impl. oder sie bleiben abstrakt.<br />
Ja, neue Methoden dürfen auch impl. werden.</p>
<blockquote>
<p>Kann ich in einem abstrakten Interface problemlos einen Zeiger auf ein anderes Interface definieren? (andres interface is somit mittels komposition im einen interface drin)</p>
</blockquote>
<p>Ja. Bsp:</p>
<pre><code class="language-cpp">struct A
{
	virtual void f() = 0;
};

struct B
{
	virtual A* g() = 0;
};
</code></pre>
<blockquote>
<p>und Wenn ich ein interface IA habe:<br />
und zwei Klassen A und AA die von IA erben dann kann/muss überall wo IA erwartet wird A oder AA verwendet werden. ?</p>
</blockquote>
<p>Ja. Oder eine andere Klasse die IA impl.</p>
<p>Edit: Oje.. ich bin ja vieeel zu langsam.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1701573</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1701573</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Sun, 26 Apr 2009 16:41:38 GMT</pubDate></item><item><title><![CDATA[Reply to allgemeine fragen zu interfaces(abstrakte klassen) on Sun, 26 Apr 2009 16:43:32 GMT]]></title><description><![CDATA[<p>[quote=&quot;/rant/&quot;]</p>
<p>cryps schrieb:</p>
<blockquote>
<p>Hallo,<br />
Ich weiss nicht, ob ich dich richtig verstanden habe, aber ja. <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>was ich meine ist folgendes:<br />
Es gibt Interface IA<br />
und Interface IB</p>
<p>in IA ist im public bereich ein zeiger definiert</p>
<pre><code class="language-cpp">public:
IB* myiBs;
..
..
</code></pre>
<p>dann gibts eine Klasse A welche von IA erbt<br />
und eine Klasse B die von IB erbt.</p>
<p>jetzt kann in Klasse A zum beispiel stehen:</p>
<pre><code class="language-cpp">myIbs = new B();
</code></pre>
<p>ist das zulässig?<br />
ich habe das beispiel jetzt stark vereinfacht... in meinem fall bekomm ich einen error wie das:<br />
expected type-specifier before B</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1701577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1701577</guid><dc:creator><![CDATA[cryps]]></dc:creator><pubDate>Sun, 26 Apr 2009 16:43:32 GMT</pubDate></item><item><title><![CDATA[Reply to allgemeine fragen zu interfaces(abstrakte klassen) on Sun, 26 Apr 2009 16:45:23 GMT]]></title><description><![CDATA[<blockquote>
<p>in IA ist im public bereich ein zeiger definiert</p>
</blockquote>
<p>Würde ich nicht. Member Variablen gehören nicht ins interface.<br />
Guck mein Bsp.</p>
<p>Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1701579</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1701579</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Sun, 26 Apr 2009 16:45:23 GMT</pubDate></item></channel></rss>