<?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[Logik Problem Konstrukor Mehrfahrvererbung (CStoll du wirst heute gefordert ;) )]]></title><description><![CDATA[<p>Konstellation:</p>
<pre><code class="language-cpp">class A{

  A(..){...}

}

class B1 : public virtual A{

  B1(..) : A(..){...}
}

class B2 : public virtual A{

  B2(..) : A(..){...}
}

class Komb : public B1, public B2{

 Komb(..) : B1(..), B2(..) {...}
}
</code></pre>
<p>Wemn ich nun ein Objekt von komb erzeuge, werden ja die Konsturktoren von B1, und B2 aufgerufen, welche wiederum (eine davon) den Konstrukor von A aufrufen..<br />
was aber nicht geht.. ich muss damit auch der Kontruktor von A aufgerufen, ihn in die Initialsieungsliste des Kontruktor von Komb anfügen..</p>
<p>Lieg es daran das der kombiler vll. nich weis ob e rden Konstruktro von A übe B1 oder B2 aufrufen soll? Was kann ich da tun?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/178551/logik-problem-konstrukor-mehrfahrvererbung-cstoll-du-wirst-heute-gefordert</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 23:03:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/178551.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 12 Apr 2007 08:55:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Logik Problem Konstrukor Mehrfahrvererbung (CStoll du wirst heute gefordert ;) ) on Thu, 12 Apr 2007 08:55:17 GMT]]></title><description><![CDATA[<p>Konstellation:</p>
<pre><code class="language-cpp">class A{

  A(..){...}

}

class B1 : public virtual A{

  B1(..) : A(..){...}
}

class B2 : public virtual A{

  B2(..) : A(..){...}
}

class Komb : public B1, public B2{

 Komb(..) : B1(..), B2(..) {...}
}
</code></pre>
<p>Wemn ich nun ein Objekt von komb erzeuge, werden ja die Konsturktoren von B1, und B2 aufgerufen, welche wiederum (eine davon) den Konstrukor von A aufrufen..<br />
was aber nicht geht.. ich muss damit auch der Kontruktor von A aufgerufen, ihn in die Initialsieungsliste des Kontruktor von Komb anfügen..</p>
<p>Lieg es daran das der kombiler vll. nich weis ob e rden Konstruktro von A übe B1 oder B2 aufrufen soll? Was kann ich da tun?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264417</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Thu, 12 Apr 2007 08:55:17 GMT</pubDate></item><item><title><![CDATA[Reply to Logik Problem Konstrukor Mehrfahrvererbung (CStoll du wirst heute gefordert ;) ) on Thu, 12 Apr 2007 08:58:17 GMT]]></title><description><![CDATA[<p>Das liegt an der virtuellen Vererbung - Du hast für die beiden Teile B1 und B2 nur einen gemeinsamen A-Anteil, deshalb weiß der Compiler nicht, welcher Ctor sich um dessen Initialisierung kümmern soll. Und die Lösung laut ANSI-Standard ist ganz einfach: Die unterste Klasse der Hierarchie muß alle virtuellen Basisklassen initialisieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264419</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264419</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 12 Apr 2007 08:58:17 GMT</pubDate></item><item><title><![CDATA[Reply to Logik Problem Konstrukor Mehrfahrvererbung (CStoll du wirst heute gefordert ;) ) on Thu, 12 Apr 2007 09:03:47 GMT]]></title><description><![CDATA[<p>Also:</p>
<pre><code class="language-cpp">Komb(..) : A(..), B1(..), B2(..) {...}
</code></pre>
<p>anders ist nich möglich?</p>
<p>Aber immerhin bisher funktioniert hervorragend:)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264423</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Thu, 12 Apr 2007 09:03:47 GMT</pubDate></item><item><title><![CDATA[Reply to Logik Problem Konstrukor Mehrfahrvererbung (CStoll du wirst heute gefordert ;) ) on Thu, 12 Apr 2007 09:16:05 GMT]]></title><description><![CDATA[<p>Ja, so muß das aussehen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<blockquote>
<p>(CStoll du wirst heute gefordert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> )</p>
</blockquote>
<p>Hast du denn kein Buch, wo du solche Fragen nachlesen kannst <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/1264429</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264429</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 12 Apr 2007 09:16:05 GMT</pubDate></item><item><title><![CDATA[Reply to Logik Problem Konstrukor Mehrfahrvererbung (CStoll du wirst heute gefordert ;) ) on Thu, 12 Apr 2007 09:23:32 GMT]]></title><description><![CDATA[<p>ne .. glaub socleh vererbung infioramtionen gibts in keiner meiner Bücher, bzw. so Detailiert:)</p>
<p>Aber es klappt ja jetzt ganz gut..der sinn der sache ist, das ich eine Klasse mit gemeinsemen Daten habe, und über jeweilige Ableitungen werden funktionen zur Bearbeitung oder Darstellung der Daten bereitgestellt. So bleiben die klassen klein und rel. Übersichtlich.. später kann ich dann durch Mehrfahvererbung die Funktionalitäten erben die ich brauch:)</p>
<p>Macht doch Sinn, und danke für deine Hilfe CStoll;) Werden sicher noch mehr Fragen kommen;)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264434</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264434</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Thu, 12 Apr 2007 09:23:32 GMT</pubDate></item><item><title><![CDATA[Reply to Logik Problem Konstrukor Mehrfahrvererbung (CStoll du wirst heute gefordert ;) ) on Thu, 12 Apr 2007 09:30:09 GMT]]></title><description><![CDATA[<p>Zur Info: Du kannst auch auf die virtuelle Vererbung von A verzichten, dann hat B1 und B2 jeweils ein eigenes A.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264438</guid><dc:creator><![CDATA[lolz_ausgeloggt]]></dc:creator><pubDate>Thu, 12 Apr 2007 09:30:09 GMT</pubDate></item><item><title><![CDATA[Reply to Logik Problem Konstrukor Mehrfahrvererbung (CStoll du wirst heute gefordert ;) ) on Thu, 12 Apr 2007 09:34:11 GMT]]></title><description><![CDATA[<p>ja das könnte ich... aber das geht nich, das ich ja immer auf die gleichen daten zugriefen will.... das ist ja der clou der geile virtuelen vererbung;)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264443</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264443</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Thu, 12 Apr 2007 09:34:11 GMT</pubDate></item><item><title><![CDATA[Reply to Logik Problem Konstrukor Mehrfahrvererbung (CStoll du wirst heute gefordert ;) ) on Thu, 12 Apr 2007 09:44:53 GMT]]></title><description><![CDATA[<p>Hmm, vielleicht wäre es da ein guter Punkt, das komplette Design zu überdenken. Solche Mehrfachvererbungen (gerade wenn sie gehäuft auftreten) sehen nicht nur hässlich aus, sie SIND hässlich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264450</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264450</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 12 Apr 2007 09:44:53 GMT</pubDate></item><item><title><![CDATA[Reply to Logik Problem Konstrukor Mehrfahrvererbung (CStoll du wirst heute gefordert ;) ) on Thu, 12 Apr 2007 09:52:30 GMT]]></title><description><![CDATA[<p>Ja du hast vermutlich Recht... hatte auch frühr Probleme damit Mehrfachvererbungen zu verstehen, vorallem wenn die Basisklassen nicht im emferntesten was mit einadner zu tun haben</p>
<pre><code class="language-cpp">class Haus : public Heizung, public Dachfenster{

};
</code></pre>
<p>in dem fall hatte ja ne Heitzung mit Dachfenster nich wirklich viel zu tun, und wird trozdme kombiniert wiel es zu eim Haus gehört, was vll. etwas Verwirrung schaft.</p>
<p>In meinem Fall ist es aber gar nich so Verwirrend, im gengeteil hat sogar etwas zusammenhalt. So hat der Anlasser als Funktion under Vergasser als Funktion schon mehr zusammenhalt zum Motor.</p>
<pre><code class="language-cpp">class Motor : public Anlasser, public Vergasser{

}
</code></pre>
<p>Das ist meine Meinung ... hisnichtlich meinees Designs;) hehe</p>
<p>Hoffe ihr Versteht meine Intention:)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264454</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264454</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Thu, 12 Apr 2007 09:52:30 GMT</pubDate></item><item><title><![CDATA[Reply to Logik Problem Konstrukor Mehrfahrvererbung (CStoll du wirst heute gefordert ;) ) on Thu, 12 Apr 2007 09:54:33 GMT]]></title><description><![CDATA[<p>Also, nach der &quot;ist ein&quot; Regel ist das gegebene Beispiel schlecht, oder lieg ich da falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264456</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264456</guid><dc:creator><![CDATA[Shinja]]></dc:creator><pubDate>Thu, 12 Apr 2007 09:54:33 GMT</pubDate></item><item><title><![CDATA[Reply to Logik Problem Konstrukor Mehrfahrvererbung (CStoll du wirst heute gefordert ;) ) on Thu, 12 Apr 2007 09:55:35 GMT]]></title><description><![CDATA[<p>Ja, ich verstehe, daß du noch viel über Klassenbeziehungen lernen solltest <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> (öffentliche) Vererbung stellt eine &quot;ist-ein&quot;-Beziehung zwischen den Klassen dar. Ist ein Haus ein Dachfenster? Ist ein Motor ein Anlasser? (wenn du auf eine dieser Fragen mit &quot;ja&quot; antworten würdest, solltest du dich mal untersuchen lassen ;))</p>
<p>Du benötigst eine &quot;hat-ein&quot;-Beziehung - das Haus <strong>hat</strong> Heizung, Dachfenster etc. und der Motor besteht aus Anlasser, Vergaser etc. Und das stellst du besser dar, indem du die Einzelteile als Member anlegst:</p>
<pre><code class="language-cpp">class Motor
{
  Anlasser m_anl;
  Vergaser m_verg;
...
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1264457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264457</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 12 Apr 2007 09:55:35 GMT</pubDate></item><item><title><![CDATA[Reply to Logik Problem Konstrukor Mehrfahrvererbung (CStoll du wirst heute gefordert ;) ) on Thu, 12 Apr 2007 09:59:11 GMT]]></title><description><![CDATA[<p>Ja ich versteh habt mich noch nich verstanden... Ist ne Interperationsache, jeder sieht es Subjektiv;) Naja weis auch nich wie ich das erklärne solte .. meine denkweise hat mit der &quot;ist-ein&quot; nichts zu tun:) Solagnsam werd ich Unsicher;)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264459</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264459</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Thu, 12 Apr 2007 09:59:11 GMT</pubDate></item><item><title><![CDATA[Reply to Logik Problem Konstrukor Mehrfahrvererbung (CStoll du wirst heute gefordert ;) ) on Thu, 12 Apr 2007 09:58:19 GMT]]></title><description><![CDATA[<p>Bedeutet der Smilie jetzt, dass es ironisch gemeint war? (nur um sicher zu gehen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264462</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264462</guid><dc:creator><![CDATA[Shinja]]></dc:creator><pubDate>Thu, 12 Apr 2007 09:58:19 GMT</pubDate></item><item><title><![CDATA[Reply to Logik Problem Konstrukor Mehrfahrvererbung (CStoll du wirst heute gefordert ;) ) on Thu, 12 Apr 2007 10:01:59 GMT]]></title><description><![CDATA[<p>So ich hab ein Beispiel, auf das sich meine Inention bezeiht;)</p>
<pre><code class="language-cpp">class Antrieb{

};

class Verbrennungsmotor : public virtual Antrieb{

};

class Elektromotor : public virtual Antrieb{

};

class HypridAntrieb : public Verbrennungsmotor, public Elektromotor{

};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1264465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264465</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Thu, 12 Apr 2007 10:01:59 GMT</pubDate></item><item><title><![CDATA[Reply to Logik Problem Konstrukor Mehrfahrvererbung (CStoll du wirst heute gefordert ;) ) on Thu, 12 Apr 2007 10:24:22 GMT]]></title><description><![CDATA[<p>Jup, ein Haus ist nun mal keine Kombination aus einer Heizung und einem Dachfenster. Es hat höchstens diese beiden Elemente/Member.<br />
Naja, und das mit dem Antrieb: Ein HybridMotor hat ja nicht _alle_ Eigenschaften eines Verbrennungs- und Elektromotors, oder ?</p>
<p>Gruß<br />
Don06</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264474</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264474</guid><dc:creator><![CDATA[Don06]]></dc:creator><pubDate>Thu, 12 Apr 2007 10:24:22 GMT</pubDate></item><item><title><![CDATA[Reply to Logik Problem Konstrukor Mehrfahrvererbung (CStoll du wirst heute gefordert ;) ) on Thu, 12 Apr 2007 10:27:46 GMT]]></title><description><![CDATA[<p>doch hat er:) sonst wärs ja kein richtiger Hypridmotor:)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264476</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264476</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Thu, 12 Apr 2007 10:27:46 GMT</pubDate></item><item><title><![CDATA[Reply to Logik Problem Konstrukor Mehrfahrvererbung (CStoll du wirst heute gefordert ;) ) on Thu, 12 Apr 2007 12:19:30 GMT]]></title><description><![CDATA[<p>Shinja schrieb:</p>
<blockquote>
<p>Also, nach der &quot;ist ein&quot; Regel ist das gegebene Beispiel schlecht, oder lieg ich da falsch?</p>
</blockquote>
<p>Ja, aber das ist ja das schöne an C++: Es scheißt auf &quot;ist-ein&quot; und verwendet Mehrfachvererbung, um Klassen mit Tags zu versehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264606</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264606</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Thu, 12 Apr 2007 12:19:30 GMT</pubDate></item><item><title><![CDATA[Reply to Logik Problem Konstrukor Mehrfahrvererbung (CStoll du wirst heute gefordert ;) ) on Thu, 12 Apr 2007 12:59:44 GMT]]></title><description><![CDATA[<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>Shinja schrieb:</p>
<blockquote>
<p>Also, nach der &quot;ist ein&quot; Regel ist das gegebene Beispiel schlecht, oder lieg ich da falsch?</p>
</blockquote>
<p>Ja, aber das ist ja das schöne an C++: Es scheißt auf &quot;ist-ein&quot; und verwendet Mehrfachvererbung, um Klassen mit Tags zu versehen.</p>
</blockquote>
<p>In C++ gibt es kein Sprachmittel, um zwischen &quot;Ist ein&quot;- und &quot;Traits&quot;-vererbung zu unterscheiden. Das fängt erst so langsam mit dem nächsten standard an, mit dem zum ersten mal möglich ist anzugeben, was ein Typ kann. Dann muss man nicht mehr für irgendwelche Tags vererben, weil Tags dann unnötig werden(wie die der iteratoren zb). Was dann noch fehlt, ist ein vererbungstyp, der zwar Methoden public zur verfügung stellt, aber der die konvertierung in den basistyp nicht erlaubt. Dann wär auch der Fall abgedeckt, dass Traits zusätzliche Informationen brauchen, um ihre Aufgabe zu erfüllen, und deswegen eigene methoden in die Klasse integrieren.</p>
<p>@Boris</p>
<pre><code class="language-cpp">class HypridAntrieb : public Verbrennungsmotor, public Elektromotor{

};
</code></pre>
<p>sehr gewagt. Ein hybridantrieb hat sowohl einen Verbrennungsmotor als auch einen Elektromotor, aber _ist_ es nicht. Ein Verbrennungsmotor kann nicht mehr fahren, wenn der tank leer ist, ein hybridantrieb schon. Q.e.d.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264636</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Thu, 12 Apr 2007 12:59:44 GMT</pubDate></item><item><title><![CDATA[Reply to Logik Problem Konstrukor Mehrfahrvererbung (CStoll du wirst heute gefordert ;) ) on Thu, 12 Apr 2007 13:02:24 GMT]]></title><description><![CDATA[<p>otze schrieb:</p>
<blockquote>
<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>Shinja schrieb:</p>
<blockquote>
<p>Also, nach der &quot;ist ein&quot; Regel ist das gegebene Beispiel schlecht, oder lieg ich da falsch?</p>
</blockquote>
<p>Ja, aber das ist ja das schöne an C++: Es scheißt auf &quot;ist-ein&quot; und verwendet Mehrfachvererbung, um Klassen mit Tags zu versehen.</p>
</blockquote>
<p>In C++ gibt es kein Sprachmittel, um zwischen &quot;Ist ein&quot;- und &quot;Traits&quot;-vererbung zu unterscheiden. Das fängt erst so langsam mit dem nächsten standard an, mit dem zum ersten mal möglich ist anzugeben, was ein Typ kann.</p>
</blockquote>
<p>Hmm. Mal abgesehen davon, dass Tagging nicht wirklich dasselbe ist wie Traits, auch nicht, wenn man von ihnen erbt: Welches Sprachmittel meinst Du im nächsten Standard? Concepts? Wie soll das hierbei helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264652</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Thu, 12 Apr 2007 13:02:24 GMT</pubDate></item><item><title><![CDATA[Reply to Logik Problem Konstrukor Mehrfahrvererbung (CStoll du wirst heute gefordert ;) ) on Fri, 13 Apr 2007 02:19:35 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5202">@otze</a>: Rein technisch gesehen schon, aber der eltrokmotor ist ja im prinziop ein hilfsmotor für beschleunigungen, und ein zusätzliche bremswirkung (baterieladen). Wenn der Tank leer ist, wird sich das auot nich mehr zu näcsht teankstelle schleppen können (auser sie ist nur 2 km entfernt). Vergleichbar mit einem Kondensator welche kurzfristige benötigete energiespitzen ausgleicht;)</p>
<p>Aber trozdem, das Beispiel hybridtmotor und virtuelle Mehrfachvererbung ist gell;) hehe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1265025</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1265025</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Fri, 13 Apr 2007 02:19:35 GMT</pubDate></item><item><title><![CDATA[Reply to Logik Problem Konstrukor Mehrfahrvererbung (CStoll du wirst heute gefordert ;) ) on Fri, 13 Apr 2007 04:09:02 GMT]]></title><description><![CDATA[<p>@Boris: Auf mich wirkt das auch wie falsch verstandene Mehrfachvererbung. Selbst beim Beispiel mit dem Hybridmotor würde ich das viel eher so lösen:</p>
<pre><code class="language-cpp">class Antrieb{

};

class Verbrennungsmotor : public virtual Antrieb{

};

class Elektromotor : public virtual Antrieb{

};

class HypridAntrieb {
 Verbrennungsmotor vmotor; 
 Elektromotor emotor;

};
</code></pre>
<p>der Hybridantrieb _hat_ einen Verbrennungsmotor und einen Elektromotor, aber es _ist_ weder das eine noch das andere.</p>
<p>Du hast ja auch Arme, Beine und nen Kopf, aber bist Du deswegen ein Arm? Würdest Du einen Menschen vom Arm ableiten? Deine Beispiele wirken bisher auf mich wie falsch verstandene Mehrfachvererbung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1265030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1265030</guid><dc:creator><![CDATA[skals]]></dc:creator><pubDate>Fri, 13 Apr 2007 04:09:02 GMT</pubDate></item><item><title><![CDATA[Reply to Logik Problem Konstrukor Mehrfahrvererbung (CStoll du wirst heute gefordert ;) ) on Fri, 13 Apr 2007 04:23:30 GMT]]></title><description><![CDATA[<p>@skals: Ohman, du kommst mir gerade zuvor... genau diese löung kamm mit grad auch als Altenative im Sinn.</p>
<p>ABER: Wobei ein Hybridantrieb ein Antrieb ist, sowie Verbrennungsmotor und Ellektromotor, nur eine Kombination.... Er erbt die eigenschaften beider Antriebe, und benutr die gleiche Antriebswelle an die Hinterachse (Wenn diese als Member der Antriebsklasse wäre). Und dise Antriebswelle würde in deinem Beispiel ja nun jetzt 2 mal vorkommen, obwohl beide antriebe an der gleiceh Antriebswelle zerren.... (Hoffe ihr versteht was ich meine)</p>
<pre><code class="language-cpp">class Antrieb{

};

class Verbrennungsmotor : public virtual Antrieb{

};

class Elektromotor : public virtual Antrieb{

};

class HypridAntrieb {

 Antrieb **pAntrieb = new *Antrieb[2];
 p[0]= new Verbrennungsmotor(); 
 p[1]= new Elektromotor();

};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1265032</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1265032</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Fri, 13 Apr 2007 04:23:30 GMT</pubDate></item><item><title><![CDATA[Reply to Logik Problem Konstrukor Mehrfahrvererbung (CStoll du wirst heute gefordert ;) ) on Fri, 13 Apr 2007 06:01:22 GMT]]></title><description><![CDATA[<p>Wenn es schon ein Antrieb ist, dann richtig <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<pre><code class="language-cpp">class Antrieb
{
    virtual void starten() = 0;
    virtual void vErhoehen() = 0;
};

class Elektromotor : public Antrieb
{
    void starten()
    {
        //Strom an!
    }

    void vErhoehen()
    {
        //mehr Saft
    }
};

class Verbrennungsmotor : public Antrieb
{
    void starten()
    {
        //&quot;etwas&quot; komplizierter
    }

    void vErhoehen()
    {
        //mehr Sprit
    }
};

class Hybridantrieb : public Antrieb
{
    Verbrennungsmotor vmotor;
    Elektromotor emotor;

    void starten()
    {
        emotor.starten();
    }

    void vErhoehen()
    {
        if(geschwindigkeit &lt; x)
            emotor.vErhoehen();
        else
        {
            vmotor.starten();
            vmotor.vErhoehen();
        }
    }
};
</code></pre>
<p>PS: Virtuelle Vererbung brauchst du bei deinem Beispiel nicht, da du beim Ableiten jede Basis nur genau einmal hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1265045</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1265045</guid><dc:creator><![CDATA[viande]]></dc:creator><pubDate>Fri, 13 Apr 2007 06:01:22 GMT</pubDate></item><item><title><![CDATA[Reply to Logik Problem Konstrukor Mehrfahrvererbung (CStoll du wirst heute gefordert ;) ) on Fri, 13 Apr 2007 06:17:37 GMT]]></title><description><![CDATA[<p>BorisDieKlinge schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5202">@otze</a>: Rein technisch gesehen schon, aber der eltrokmotor ist ja im prinziop ein hilfsmotor für beschleunigungen, und ein zusätzliche bremswirkung (baterieladen). Wenn der Tank leer ist, wird sich das auot nich mehr zu näcsht teankstelle schleppen können (auser sie ist nur 2 km entfernt). Vergleichbar mit einem Kondensator welche kurzfristige benötigete energiespitzen ausgleicht;)</p>
</blockquote>
<p>Wenn du das so siehst, kann er womöglich als Verbrennungsmotor durchgehen, aber nach der Beschreibung ist er definitiv kein (reiner) Elektromotor. Aber viande's Ansatz dürfte die Abhängigkeiten wohl besser beschreiben.</p>
<p>(und wenn du schon so fein unterscheiden willst, daß du das Auto bis auf die Antriebswelle zerlegen willst - dann wird die ein eigenständiger Bestandteil des Autos und kein Teil des Motors)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1265051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1265051</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 13 Apr 2007 06:17:37 GMT</pubDate></item><item><title><![CDATA[Reply to Logik Problem Konstrukor Mehrfahrvererbung (CStoll du wirst heute gefordert ;) ) on Fri, 13 Apr 2007 06:42:19 GMT]]></title><description><![CDATA[<p>Würde ich im der Klasse Antrieb eine Variable X hinzufügen, dann hätte ich ja in deR klasse Hybridmotor ein vererbtes X Elemtne, und jeweils aus dem VErbrenungsmotor und Eltrkotrmotor ein vererbtes X... (seh ich das richtig?)</p>
<p>Aber die klasse Hybridmotor soll ja nur ein X für alle Abgeleiten klassen haben.. (Gemeinsames Nuten des X's)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1265057</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1265057</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Fri, 13 Apr 2007 06:42:19 GMT</pubDate></item><item><title><![CDATA[Reply to Logik Problem Konstrukor Mehrfahrvererbung (CStoll du wirst heute gefordert ;) ) on Fri, 13 Apr 2007 07:42:29 GMT]]></title><description><![CDATA[<p>BorisDieKlinge schrieb:</p>
<blockquote>
<p>ABER: Wobei ein Hybridantrieb ein Antrieb ist, sowie Verbrennungsmotor und Ellektromotor, nur eine Kombination.... Er erbt die eigenschaften beider Antriebe, und benutr die gleiche Antriebswelle an die Hinterachse (Wenn diese als Member der Antriebsklasse wäre). Und dise Antriebswelle würde in deinem Beispiel ja nun jetzt 2 mal vorkommen, obwohl beide antriebe an der gleiceh Antriebswelle zerren.... (Hoffe ihr versteht was ich meine)</p>
</blockquote>
<p>Sorry, das stimmt einfach so nciht. So wie Du den Hybridantrieb beschreibst müßte das _ein_ Motor sein der sowohl Verbrennungsmotor als auch Elektromotor <strong>in einem</strong> ist. wenn Du aber mal in so ein Hybridauto reinschaust, dann sind da zwei <strong>getrennte</strong> Motoren drin, einer der auf Brennstoff läuft und energie erzeugt, ein zweiter der eben auf jeder energie läuft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1265079</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1265079</guid><dc:creator><![CDATA[skals]]></dc:creator><pubDate>Fri, 13 Apr 2007 07:42:29 GMT</pubDate></item></channel></rss>