<?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[Übereinstimmende Funktionen aus zwei unabhängigen Basisklassen]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe drei Schnittstellen. Zwei unabhängige Schnittstellen (IFoo &amp; IBar) und eine, die besagt, das beide anderen Schnittstellen enthalten sind (IFooBar).<br />
Jetzt habe ich eine Implementierung für IFoo bzw. IBar. Jetzt soll die Implementierung von IFooBar diese beiden verwenden und zusätzlich die IFooBar Schnittstelle haben.</p>
<pre><code class="language-cpp">struct IFoo{
	virtual void foo() = 0;
};

struct IBar{
	virtual void bar() = 0;
};

struct IFooBar : public IFoo, public IBar {};

struct Foo : public IFoo{
	virtual void foo(){};
};

struct Bar : public IBar{
	virtual void bar(){};
};

struct FooBar : public IFooBar, public Foo, public Bar {
};

int main(){
	FooBar fooBar;
}
</code></pre>
<blockquote>
<p>test.cpp: In function 'int main()':<br />
test.cpp:24:9: error: cannot declare variable 'fooBar' to be of abstract type 'FooBar'<br />
test.cpp:19:8: note: because the following virtual functions are pure within 'FooBar':<br />
test.cpp:6:15: note: virtual void IBar::bar()<br />
test.cpp:2:15: note: virtual void IFoo::foo()</p>
</blockquote>
<p>Wie löse ich es ohne jede Funktion zu delegieren?</p>
<p>Gruß,<br />
Jörg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/293264/übereinstimmende-funktionen-aus-zwei-unabhängigen-basisklassen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 10:44:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/293264.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 28 Sep 2011 21:07:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Übereinstimmende Funktionen aus zwei unabhängigen Basisklassen on Wed, 28 Sep 2011 21:07:24 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe drei Schnittstellen. Zwei unabhängige Schnittstellen (IFoo &amp; IBar) und eine, die besagt, das beide anderen Schnittstellen enthalten sind (IFooBar).<br />
Jetzt habe ich eine Implementierung für IFoo bzw. IBar. Jetzt soll die Implementierung von IFooBar diese beiden verwenden und zusätzlich die IFooBar Schnittstelle haben.</p>
<pre><code class="language-cpp">struct IFoo{
	virtual void foo() = 0;
};

struct IBar{
	virtual void bar() = 0;
};

struct IFooBar : public IFoo, public IBar {};

struct Foo : public IFoo{
	virtual void foo(){};
};

struct Bar : public IBar{
	virtual void bar(){};
};

struct FooBar : public IFooBar, public Foo, public Bar {
};

int main(){
	FooBar fooBar;
}
</code></pre>
<blockquote>
<p>test.cpp: In function 'int main()':<br />
test.cpp:24:9: error: cannot declare variable 'fooBar' to be of abstract type 'FooBar'<br />
test.cpp:19:8: note: because the following virtual functions are pure within 'FooBar':<br />
test.cpp:6:15: note: virtual void IBar::bar()<br />
test.cpp:2:15: note: virtual void IFoo::foo()</p>
</blockquote>
<p>Wie löse ich es ohne jede Funktion zu delegieren?</p>
<p>Gruß,<br />
Jörg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2124895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2124895</guid><dc:creator><![CDATA[Jörg91]]></dc:creator><pubDate>Wed, 28 Sep 2011 21:07:24 GMT</pubDate></item><item><title><![CDATA[Reply to Übereinstimmende Funktionen aus zwei unabhängigen Basisklassen on Wed, 28 Sep 2011 21:24:25 GMT]]></title><description><![CDATA[<p>Mit virtueller Vererbung ist das möglich:</p>
<pre><code class="language-cpp">struct IFoo{
    virtual void foo() = 0;
};

struct IBar{
    virtual void bar() = 0;
};

struct IFooBar : virtual public IFoo, virtual public IBar {};

struct Foo : virtual public IFoo{
    virtual void foo(){};
};

struct Bar : virtual public IBar{
    virtual void bar(){};
};

struct FooBar : public IFooBar, public Foo, public Bar {
};

int main(){
    FooBar fooBar;
}
</code></pre>
<p>Sonst versucht FooBar, jeweils zwei Unterobjekte der Typen IFoo und IBar zu haben, von denen die durch IFooBar eingeführten abstrakt sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2124899</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2124899</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Wed, 28 Sep 2011 21:24:25 GMT</pubDate></item><item><title><![CDATA[Reply to Übereinstimmende Funktionen aus zwei unabhängigen Basisklassen on Wed, 28 Sep 2011 21:36:17 GMT]]></title><description><![CDATA[<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2124901</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2124901</guid><dc:creator><![CDATA[Jörg91]]></dc:creator><pubDate>Wed, 28 Sep 2011 21:36:17 GMT</pubDate></item><item><title><![CDATA[Reply to Übereinstimmende Funktionen aus zwei unabhängigen Basisklassen on Wed, 28 Sep 2011 21:40:13 GMT]]></title><description><![CDATA[<p>edit: gelöscht vom verdammt bösen volkard.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2124903</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2124903</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Wed, 28 Sep 2011 21:40:13 GMT</pubDate></item></channel></rss>