<?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[Merhfachableitung und Vererbung von virtuellen Methoden]]></title><description><![CDATA[<p>Hallo,</p>
<p>folgende Sache verstehe ich nicht komplett und hätte gerne eine Lösung. Momentan löse ich es mit explizitem Weiterleiten an die Klasse B. (B::Methode1())</p>
<pre><code>class B{
  public:
    virtual int Methode1();  //oder ohne virtual
};

class C{  //Interface
  public:
    virtual int Methode1() = 0; 
    virtual int Methode2() = 0; 
};

class A : public B, public C{
  public:
    virtual int Methode1() {B::Methode1();} // möchte ich mir sparen
    virtual int Methode2(); 
};
</code></pre>
<p>Den Aufbau noch mal in Worten beschrieben.<br />
Ich habe eine Basisklasse B mit adminsitrativer Grundfunktionalität, der auch anderswo gebraucht wird. Von der erbt Klasse A und ergänzt eigenen Kram. Die Klasse A ist die eigentlich wichtige Doing-Klasse.</p>
<p>Jetzt definierte ich ein Interface C mit der Klasse A in abstracter Form benutzt wird. Es handelt sich um Teilfunktionalitäten und dort, wo C benutzt wird, möchte ich A gar nicht bekannt machen.<br />
Jetzt ist es aber so, dass ein Teil der Interface-Methoden von C, die A implementieren müsste, schon in der Basis B implementiert ist. Ist halt allgemeinerer Kram.</p>
<p>Lasse ich den Forward weg, kommt bei VC++ sinngemäß dass kein Überschreiber vorhanden ist. Der Compiler hat zwar Recht, es ist keine Methode in A direkt, aber eben ererbt von B. Kann man das irgendwie realiseren, oder muss ich es wie oben explizit machen?</p>
<p>Gruß Thomas</p>
<p>Gruß Thomas</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/332716/merhfachableitung-und-vererbung-von-virtuellen-methoden</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Apr 2026 05:34:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/332716.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 18 May 2015 17:37:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Merhfachableitung und Vererbung von virtuellen Methoden on Mon, 18 May 2015 17:37:32 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>folgende Sache verstehe ich nicht komplett und hätte gerne eine Lösung. Momentan löse ich es mit explizitem Weiterleiten an die Klasse B. (B::Methode1())</p>
<pre><code>class B{
  public:
    virtual int Methode1();  //oder ohne virtual
};

class C{  //Interface
  public:
    virtual int Methode1() = 0; 
    virtual int Methode2() = 0; 
};

class A : public B, public C{
  public:
    virtual int Methode1() {B::Methode1();} // möchte ich mir sparen
    virtual int Methode2(); 
};
</code></pre>
<p>Den Aufbau noch mal in Worten beschrieben.<br />
Ich habe eine Basisklasse B mit adminsitrativer Grundfunktionalität, der auch anderswo gebraucht wird. Von der erbt Klasse A und ergänzt eigenen Kram. Die Klasse A ist die eigentlich wichtige Doing-Klasse.</p>
<p>Jetzt definierte ich ein Interface C mit der Klasse A in abstracter Form benutzt wird. Es handelt sich um Teilfunktionalitäten und dort, wo C benutzt wird, möchte ich A gar nicht bekannt machen.<br />
Jetzt ist es aber so, dass ein Teil der Interface-Methoden von C, die A implementieren müsste, schon in der Basis B implementiert ist. Ist halt allgemeinerer Kram.</p>
<p>Lasse ich den Forward weg, kommt bei VC++ sinngemäß dass kein Überschreiber vorhanden ist. Der Compiler hat zwar Recht, es ist keine Methode in A direkt, aber eben ererbt von B. Kann man das irgendwie realiseren, oder muss ich es wie oben explizit machen?</p>
<p>Gruß Thomas</p>
<p>Gruß Thomas</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2453969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2453969</guid><dc:creator><![CDATA[ThomasT]]></dc:creator><pubDate>Mon, 18 May 2015 17:37:32 GMT</pubDate></item><item><title><![CDATA[Reply to Merhfachableitung und Vererbung von virtuellen Methoden on Mon, 18 May 2015 17:52:34 GMT]]></title><description><![CDATA[<p>Kann B nicht direkt das Interface C anbieten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2453975</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2453975</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Mon, 18 May 2015 17:52:34 GMT</pubDate></item><item><title><![CDATA[Reply to Merhfachableitung und Vererbung von virtuellen Methoden on Mon, 18 May 2015 18:05:02 GMT]]></title><description><![CDATA[<p>Entweder wie Nathan geschrieben hat, oder lass die Weiterleitung drin, die ist völlig in Ordnung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2453979</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2453979</guid><dc:creator><![CDATA[Mechanics]]></dc:creator><pubDate>Mon, 18 May 2015 18:05:02 GMT</pubDate></item><item><title><![CDATA[Reply to Merhfachableitung und Vererbung von virtuellen Methoden on Tue, 19 May 2015 10:36:56 GMT]]></title><description><![CDATA[<p>Nathan schrieb:</p>
<blockquote>
<p>Kann B nicht direkt das Interface C anbieten?</p>
</blockquote>
<p>Nicht wirklich. Erfundenes Beispiel:</p>
<p>B ist eine Person mit Eigenschaften wie Name, Alter usw.<br />
A ist ein Facharbeiter, der zusätzlich zur Person halt Werkzeuge beherrscht, Tätigkeiten ausführt usw.</p>
<p>C ist jetzt ein Interface für Firmen-Entity, wo es Angestellte, Maschinen, Immobilien etc. gibt. Da ist nur von Belang was und wie es heisst. Also z.B. aus einem Namen besteht und einer Tätikeit. Name kommt schon von B und Tätigkeit von A.</p>
<p>C ist sozusagen ein &quot;Querinterface&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2454064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2454064</guid><dc:creator><![CDATA[ThomasT]]></dc:creator><pubDate>Tue, 19 May 2015 10:36:56 GMT</pubDate></item><item><title><![CDATA[Reply to Merhfachableitung und Vererbung von virtuellen Methoden on Tue, 19 May 2015 10:55:15 GMT]]></title><description><![CDATA[<p>Wenn C so ein &quot;Querinterface&quot; ist, ist es dann nicht recht unüblich/selten dass die Signaturen &amp; Semantik der Funktionen genau übereinstimmen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2454065</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2454065</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 19 May 2015 10:55:15 GMT</pubDate></item><item><title><![CDATA[Reply to Merhfachableitung und Vererbung von virtuellen Methoden on Tue, 19 May 2015 21:22:36 GMT]]></title><description><![CDATA[<p>Edit:<br />
Ich sollte besser lesen.</p>
<p>Dann ist es die Aufgabe von der Klasse welche von dem Interface erbt, die Funktionen zu überschreiben, also hast es mMn. schon richtig gemacht.</p>
<p>Edit:<br />
Das hier habe auch mal gesehen:</p>
<pre><code>#define B_IMPL \
public: \
    virtual int Methode1() \
    { \
    } \

class C{  //Interface
  public:
    virtual int Methode1() = 0;
    virtual int Methode2() = 0;
};

class A : public C{
  public:
    virtual int Methode2() {}
    B_IMPL
};
</code></pre>
<p>Debuggen macht so aber keinen Spaß.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2454120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2454120</guid><dc:creator><![CDATA[JulianH]]></dc:creator><pubDate>Tue, 19 May 2015 21:22:36 GMT</pubDate></item><item><title><![CDATA[Reply to Merhfachableitung und Vererbung von virtuellen Methoden on Wed, 10 Jun 2015 15:59:59 GMT]]></title><description><![CDATA[<p>sorry, ich bin in meinem Buch wohl noch nicht soweit, aber was bedeutet das hier ?</p>
<pre><code>virtual int Methode1() = 0;
</code></pre>
<p>wird hier ne Methode initialiesiert ? Unter was kann ich das nachlesen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2456316</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2456316</guid><dc:creator><![CDATA[dont_know]]></dc:creator><pubDate>Wed, 10 Jun 2015 15:59:59 GMT</pubDate></item><item><title><![CDATA[Reply to Merhfachableitung und Vererbung von virtuellen Methoden on Wed, 10 Jun 2015 16:28:08 GMT]]></title><description><![CDATA[<p>Abstrakte (oder &quot;pure virtual&quot;) Methode</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2456319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2456319</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Wed, 10 Jun 2015 16:28:08 GMT</pubDate></item><item><title><![CDATA[Reply to Merhfachableitung und Vererbung von virtuellen Methoden on Thu, 11 Jun 2015 07:10:22 GMT]]></title><description><![CDATA[<p>zum Nachlesen<br />
<a href="http://www.programmerinterview.com/index.php/c-cplusplus/pure-virtual-function/" rel="nofollow">http://www.programmerinterview.com/index.php/c-cplusplus/pure-virtual-function/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2456386</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2456386</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 11 Jun 2015 07:10:22 GMT</pubDate></item></channel></rss>