<?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[Virtuelle Vererbung]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich komme gerade nicht mit der virtuellen Vererbung zurrecht <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>
<p>Ich hab hier dieses Allgemeine Beispiel mit Fahrzeug,Wasserfahrzeug,Landfahrzeug,Amphibienfahrzeug<br />
Meine 4 Klassen sind immer gleich aufgebaut<br />
Bsp. Landfahrzeug.h</p>
<pre><code>class Landfahrzeug:public virtual fahrzeug
{
	private:
	public:
		Landfahrzeug();
		~Landfahrzeug();

};

Landfahrzeug::Landfahrzeug()
{
	cout&lt;&lt;&quot;Default-Landfahrzeug&quot;&lt;&lt;endl;

}
</code></pre>
<p>AmphibienFahrzeug.h</p>
<pre><code>class Amphiebienfahrzeug:public Landfahrzeug,public Wasserfahrzeug
{
	private:
	public:
		Amphiebienfahrzeug();
		~Amphiebienfahrzeug();

};

Amphiebienfahrzeug::Amphiebienfahrzeug()
{
	cout&lt;&lt;&quot;Default-Amphiebienfahrzeug&quot;&lt;&lt;endl;

}
</code></pre>
<p>Die anderen beiden Klassen sind genauso aufgebaut(Fahrzeug,Wasserfahrzeug).<br />
Nun meine Main wo ich für jede Klasse ein Objekt erstelle</p>
<p>Main.cpp</p>
<pre><code>int main()
{
	cout &lt;&lt; &quot;Ein fahrzeug:\n&quot;;
  fahrzeug f;
  cout &lt;&lt; &quot;Ein landfahrzeug:\n&quot;;
  Landfahrzeug lf;
  cout&lt;&lt;&quot;Ein Wasserfahrzug:\n&quot;;
  Wasserfahrzeug wf;
  cout &lt;&lt; &quot;Ein amphibienfahrzeug:\n&quot;;
  Amphiebienfahrzeug af;

  system(&quot;pause&quot;);
  cin.get();cin.get();
}
</code></pre>
<p>Als Fehlermeldung bringt er mir sowas wie<br />
Bsp.<br />
Wasserfahrzeug: Basisklasse undefiniert<br />
fahrzeug: Basisklasse undefiniert<br />
Landfahrzeug: Basisklasse undefiniert<br />
Was mache ich falsch steh echt gerade auf dem Schlauch</p>
<p>Eine Frage noch, für was steht #pragma once im oberen Bereich der Datei?</p>
<p>Danke für Antworten</p>
<p>VG Moritz</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/338223/virtuelle-vererbung</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Apr 2026 18:27:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/338223.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 01 Jun 2016 14:03:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Virtuelle Vererbung on Wed, 01 Jun 2016 14:03:46 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich komme gerade nicht mit der virtuellen Vererbung zurrecht <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>
<p>Ich hab hier dieses Allgemeine Beispiel mit Fahrzeug,Wasserfahrzeug,Landfahrzeug,Amphibienfahrzeug<br />
Meine 4 Klassen sind immer gleich aufgebaut<br />
Bsp. Landfahrzeug.h</p>
<pre><code>class Landfahrzeug:public virtual fahrzeug
{
	private:
	public:
		Landfahrzeug();
		~Landfahrzeug();

};

Landfahrzeug::Landfahrzeug()
{
	cout&lt;&lt;&quot;Default-Landfahrzeug&quot;&lt;&lt;endl;

}
</code></pre>
<p>AmphibienFahrzeug.h</p>
<pre><code>class Amphiebienfahrzeug:public Landfahrzeug,public Wasserfahrzeug
{
	private:
	public:
		Amphiebienfahrzeug();
		~Amphiebienfahrzeug();

};

Amphiebienfahrzeug::Amphiebienfahrzeug()
{
	cout&lt;&lt;&quot;Default-Amphiebienfahrzeug&quot;&lt;&lt;endl;

}
</code></pre>
<p>Die anderen beiden Klassen sind genauso aufgebaut(Fahrzeug,Wasserfahrzeug).<br />
Nun meine Main wo ich für jede Klasse ein Objekt erstelle</p>
<p>Main.cpp</p>
<pre><code>int main()
{
	cout &lt;&lt; &quot;Ein fahrzeug:\n&quot;;
  fahrzeug f;
  cout &lt;&lt; &quot;Ein landfahrzeug:\n&quot;;
  Landfahrzeug lf;
  cout&lt;&lt;&quot;Ein Wasserfahrzug:\n&quot;;
  Wasserfahrzeug wf;
  cout &lt;&lt; &quot;Ein amphibienfahrzeug:\n&quot;;
  Amphiebienfahrzeug af;

  system(&quot;pause&quot;);
  cin.get();cin.get();
}
</code></pre>
<p>Als Fehlermeldung bringt er mir sowas wie<br />
Bsp.<br />
Wasserfahrzeug: Basisklasse undefiniert<br />
fahrzeug: Basisklasse undefiniert<br />
Landfahrzeug: Basisklasse undefiniert<br />
Was mache ich falsch steh echt gerade auf dem Schlauch</p>
<p>Eine Frage noch, für was steht #pragma once im oberen Bereich der Datei?</p>
<p>Danke für Antworten</p>
<p>VG Moritz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2497616</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2497616</guid><dc:creator><![CDATA[Moritz Vogt]]></dc:creator><pubDate>Wed, 01 Jun 2016 14:03:46 GMT</pubDate></item><item><title><![CDATA[Reply to Virtuelle Vererbung on Wed, 01 Jun 2016 14:14:35 GMT]]></title><description><![CDATA[<p>Du musst in deinem Amphibienfahrzeug-Konstruktor die anderen Konstruktoren aufrufen:<br />
- erst den der virtuellen Klasse (das machst du hier direkt aus dem Amphibienfahrzeug!)<br />
- dann die der nicht-virtuellen Basisklassen.</p>
<p><code>#pragma once</code> ist sowas wie ein Include-Guard. Eine Suche nach &quot;#pragma once vs include guards&quot; sollte dir alle Pros und Cons liefern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2497618</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2497618</guid><dc:creator><![CDATA[wob]]></dc:creator><pubDate>Wed, 01 Jun 2016 14:14:35 GMT</pubDate></item><item><title><![CDATA[Reply to Virtuelle Vererbung on Wed, 01 Jun 2016 14:22:49 GMT]]></title><description><![CDATA[<p>Danke für die Antwort,</p>
<p>Ich kann doch meinen Default-Konstruktor garnicht aufrufen, der ruft sich doch von selber auf ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2497620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2497620</guid><dc:creator><![CDATA[Moritz Vogt]]></dc:creator><pubDate>Wed, 01 Jun 2016 14:22:49 GMT</pubDate></item><item><title><![CDATA[Reply to Virtuelle Vererbung on Wed, 01 Jun 2016 14:35:07 GMT]]></title><description><![CDATA[<p>Ich verstehe deine Antwort nicht. Warum kannst du den default-Konstruktor nicht aufrufen?</p>
<pre><code>Amphibienfahrzeug::Amphibienfahrzeug()
    : fahrzeug()
    , Landfahrzeug()
    , Wasserfahrzeug()
{
    ....
}
</code></pre>
<p>PS: Warum ist dein fahrzeug eigentlich klein, wo alle anderen Klassen mit Großbuchstaben anfangen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2497621</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2497621</guid><dc:creator><![CDATA[wob]]></dc:creator><pubDate>Wed, 01 Jun 2016 14:35:07 GMT</pubDate></item><item><title><![CDATA[Reply to Virtuelle Vererbung on Wed, 01 Jun 2016 14:37:01 GMT]]></title><description><![CDATA[<p>Moritz Vogt schrieb:</p>
<blockquote>
<p>Als Fehlermeldung bringt er mir sowas wie</p>
</blockquote>
<p>Was hat dich jetzt daran gehindert, die Meldung einfach zu kopieren?</p>
<p>Du musst natürlich auch ein include der Basisklassenheader einfügen, damit die Basisklassen bekannt sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2497622</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2497622</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Wed, 01 Jun 2016 14:37:01 GMT</pubDate></item><item><title><![CDATA[Reply to Virtuelle Vererbung on Wed, 01 Jun 2016 14:38:50 GMT]]></title><description><![CDATA[<p>wob schrieb:</p>
<blockquote>
<p>Du musst in deinem Amphibienfahrzeug-Konstruktor die anderen Konstruktoren aufrufen</p>
</blockquote>
<p>Nein</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2497623</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2497623</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Wed, 01 Jun 2016 14:38:50 GMT</pubDate></item><item><title><![CDATA[Reply to Virtuelle Vererbung on Wed, 01 Jun 2016 15:04:30 GMT]]></title><description><![CDATA[<p>Ok, Manni66 hat recht. Aber sobald du deinem Basis-Konstruktor einen Parameter gibst, musst du das tun, was ich geschrieben hatte.</p>
<p>Wenn das wirklich der echte Code ist, den du gezeigt hast, dann verwundert auch noch, dass du im Header cout/endl verwendest, also vermutlich irgendwo den namespace std includest. Das tut man in Header-Dateien nicht. (das sieht man aber nirgends im geposteten Code - es muss also jedenfalls noch irgendwas fehlen, daher war ich selbstverständlich davon ausgegangen, dass du nicht alles komplett zeigst und dass du auch korrekt includest).</p>
<p>Genaue Fehlermeldungen helfen. Immer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2497625</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2497625</guid><dc:creator><![CDATA[wob]]></dc:creator><pubDate>Wed, 01 Jun 2016 15:04:30 GMT</pubDate></item><item><title><![CDATA[Reply to Virtuelle Vererbung on Wed, 01 Jun 2016 15:18:10 GMT]]></title><description><![CDATA[<p>wob schrieb:</p>
<blockquote>
<p>PS: Warum ist dein fahrzeug eigentlich klein, wo alle anderen Klassen mit Großbuchstaben anfangen?</p>
</blockquote>
<p>Das ist nichts als konsequent, denn <code>fahrzeug</code> ist bei allen vier Klassen klein geschrieben... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2497627</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2497627</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Wed, 01 Jun 2016 15:18:10 GMT</pubDate></item></channel></rss>