<?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[Problem mit Vererbung und Schnittstellen]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine Basisschnittstelle IComponent, von der meine Komponentenschnittstellen abgeleitet sind:</p>
<pre><code>IComponent
|_ IWindowManager
|_ IFileSystem
usw.
</code></pre>
<p>Jetzt möchte ich für diese Schnittstellen Klassen implementieren:</p>
<pre><code class="language-cpp">class CWindowManager : public IWindowManager { /* ... */ }
class CFileSystem : public IFileSystem { /* ... */ }
</code></pre>
<p>Nun muss ich ja für beide Klassen auch die Methoden von IComponent implementieren, richtig?</p>
<p>Mein Problem ist jetzt: diese Methoden sind bei allen Komponenten gleich. Kann ich es irgendwie schaffen, sie nur ein einziges Mal implementieren zu müssen?</p>
<p>Ich habe folgendes versucht:<br />
Eine Klasse CComponent schreiben, die IComponent implementiert, also genau die Methoden, die ich nicht hundertfach schreiben möchte. Und dann:</p>
<pre><code class="language-cpp">class CWindowManager : public CComponent, public IWindowManager { /* ... */ }
class CFileSystem : public CComponent, public IFileSystem { /* ... */ }
</code></pre>
<p>Aber das funktioniert nicht...<br />
Hat jemand Rat für mich?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/135863/problem-mit-vererbung-und-schnittstellen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 03:32:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/135863.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 05 Feb 2006 16:18:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit Vererbung und Schnittstellen on Sun, 05 Feb 2006 16:18:07 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine Basisschnittstelle IComponent, von der meine Komponentenschnittstellen abgeleitet sind:</p>
<pre><code>IComponent
|_ IWindowManager
|_ IFileSystem
usw.
</code></pre>
<p>Jetzt möchte ich für diese Schnittstellen Klassen implementieren:</p>
<pre><code class="language-cpp">class CWindowManager : public IWindowManager { /* ... */ }
class CFileSystem : public IFileSystem { /* ... */ }
</code></pre>
<p>Nun muss ich ja für beide Klassen auch die Methoden von IComponent implementieren, richtig?</p>
<p>Mein Problem ist jetzt: diese Methoden sind bei allen Komponenten gleich. Kann ich es irgendwie schaffen, sie nur ein einziges Mal implementieren zu müssen?</p>
<p>Ich habe folgendes versucht:<br />
Eine Klasse CComponent schreiben, die IComponent implementiert, also genau die Methoden, die ich nicht hundertfach schreiben möchte. Und dann:</p>
<pre><code class="language-cpp">class CWindowManager : public CComponent, public IWindowManager { /* ... */ }
class CFileSystem : public CComponent, public IFileSystem { /* ... */ }
</code></pre>
<p>Aber das funktioniert nicht...<br />
Hat jemand Rat für mich?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/986606</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/986606</guid><dc:creator><![CDATA[Zarafarian]]></dc:creator><pubDate>Sun, 05 Feb 2006 16:18:07 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Vererbung und Schnittstellen on Sun, 05 Feb 2006 16:21:27 GMT]]></title><description><![CDATA[<p>Entweder du stellst ne Standardimplementierung bereit in IComponent, oder du leitest wie angedeutet von IComponent ab, implementierst dort die Funktion und leitest alle anderen Klassen von dieser ab, wenn sie wie bei deinem Beispiel CComponent heißt, dann einfach class CFileSystem : public CComponent{}; da CComponent von IComponent abgeleitet ist, erbt CFileSystem ebenfalls alles von IComponent.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/986614</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/986614</guid><dc:creator><![CDATA[Any]]></dc:creator><pubDate>Sun, 05 Feb 2006 16:21:27 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Vererbung und Schnittstellen on Sun, 05 Feb 2006 16:31:13 GMT]]></title><description><![CDATA[<p>Erst einmal danke für die Antwort!</p>
<p>Any schrieb:</p>
<blockquote>
<p>Entweder du stellst ne Standardimplementierung bereit in IComponent,</p>
</blockquote>
<p>Das geht leider nicht, weil die Interfaces keine Implementierung beinhalten können, weil ich nach außen hin alles abschotten möchte.</p>
<p>Any schrieb:</p>
<blockquote>
<p>oder du leitest wie angedeutet von IComponent ab, implementierst dort die Funktion und leitest alle anderen Klassen von dieser ab, wenn sie wie bei deinem Beispiel CComponent heißt, dann einfach class CFileSystem : public CComponent{}; da CComponent von IComponent abgeleitet ist, erbt CFileSystem ebenfalls alles von IComponent.</p>
</blockquote>
<p>Aber was ist dann mit IFileSystem? Ich muss CFileSystem ja auf jeden Fall von IFileSystem ableiten. Und wenn ich CFileSystem sowohl von IFileSystem als auch von CComponent ableite, funktioniert das nicht, ohne die IComponent-Methoden wiederum neu implementieren zu müssen... <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/986628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/986628</guid><dc:creator><![CDATA[Zarafarian]]></dc:creator><pubDate>Sun, 05 Feb 2006 16:31:13 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Vererbung und Schnittstellen on Sun, 05 Feb 2006 17:04:46 GMT]]></title><description><![CDATA[<p>Kannst du IFileSystem von CComponent ableiten, oder muss es IComponent sein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/986656</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/986656</guid><dc:creator><![CDATA[Any]]></dc:creator><pubDate>Sun, 05 Feb 2006 17:04:46 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Vererbung und Schnittstellen on Sun, 05 Feb 2006 17:29:35 GMT]]></title><description><![CDATA[<p>Es muss schon von IComponent abgeleitet sein, da CComponent nach außen hin nicht sichtbar ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/986687</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/986687</guid><dc:creator><![CDATA[Zarafarian]]></dc:creator><pubDate>Sun, 05 Feb 2006 17:29:35 GMT</pubDate></item></channel></rss>