<?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[Klasse vererben mit Variable im Konstruktor]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe eine Klasse Tier mit einem virtual-Member und übergebe in den Konstruktor eine Variable, die danach weitergenutzt werden soll. Diese Klasse soll dann an Hund vererbt werden und nur die virtual-Member geändert werden. Ich habe mal ein Minimalbeispiel erzeugt, wo ich einfach nix zu gefunden habe.</p>
<pre><code>#include &lt;iostream&gt;

using namespace std;

class Tier
{
   public:
      virtual void Ausgabe(){cout &lt;&lt; &quot;Size: &quot; &lt;&lt; size &lt;&lt; endl;};
      int size;

      Tier(int size){ this-&gt;size=size;};
};

class Hund : public Tier
{
   public:
      void Ausgabe(){size = size+1; cout &lt;&lt; size &lt;&lt; endl;}
      Hund(int size){Tier(size);};
};

int main()
{
   Tier *tier1(5);
   tier1 = new Hund(5);

   tier1-&gt;Ausgabe();

   return 0;
}
</code></pre>
<p>Was in den Konstruktor von Hund rein muss, damit es funktioniert, ist mir schleierhaft.<br />
Vielen Dank für eure Mithilfe!</p>
<p>Gruß,<br />
phanlipo</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/320204/klasse-vererben-mit-variable-im-konstruktor</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Jul 2026 08:28:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/320204.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 20 Sep 2013 09:56:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klasse vererben mit Variable im Konstruktor on Fri, 20 Sep 2013 09:56:46 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe eine Klasse Tier mit einem virtual-Member und übergebe in den Konstruktor eine Variable, die danach weitergenutzt werden soll. Diese Klasse soll dann an Hund vererbt werden und nur die virtual-Member geändert werden. Ich habe mal ein Minimalbeispiel erzeugt, wo ich einfach nix zu gefunden habe.</p>
<pre><code>#include &lt;iostream&gt;

using namespace std;

class Tier
{
   public:
      virtual void Ausgabe(){cout &lt;&lt; &quot;Size: &quot; &lt;&lt; size &lt;&lt; endl;};
      int size;

      Tier(int size){ this-&gt;size=size;};
};

class Hund : public Tier
{
   public:
      void Ausgabe(){size = size+1; cout &lt;&lt; size &lt;&lt; endl;}
      Hund(int size){Tier(size);};
};

int main()
{
   Tier *tier1(5);
   tier1 = new Hund(5);

   tier1-&gt;Ausgabe();

   return 0;
}
</code></pre>
<p>Was in den Konstruktor von Hund rein muss, damit es funktioniert, ist mir schleierhaft.<br />
Vielen Dank für eure Mithilfe!</p>
<p>Gruß,<br />
phanlipo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2353969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2353969</guid><dc:creator><![CDATA[phanlipo]]></dc:creator><pubDate>Fri, 20 Sep 2013 09:56:46 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse vererben mit Variable im Konstruktor on Fri, 20 Sep 2013 10:02:50 GMT]]></title><description><![CDATA[<p>Niemals new ohne delete verwenden! C++ funktioniert anders als Java. Smartpointer (unique_ptr) gibt's dafür. Am Besten natürlich gar kein new, aber Du willst hier wohl den Basisklassenzeiger nutzen, sonst:</p>
<pre><code class="language-cpp">Hund einHund(5);
</code></pre>
<p>Zum Problem:</p>
<pre><code class="language-cpp">Hund(int size) : Tier(size) {}
</code></pre>
<p>In Tier auch besser:</p>
<pre><code class="language-cpp">Tier(int size) : size(size) {}
</code></pre>
<p>Aber in der main ist auch sonst was kaputt, denn was soll:</p>
<pre><code class="language-cpp">Tier *tier1(5);
</code></pre>
<p>denn bitte bewirken? Du initialisierst den Zeiger mit der Addresse 0x00000005, das ist doch albern. Weg mit den Klammern. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2353971</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2353971</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Fri, 20 Sep 2013 10:02:50 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse vererben mit Variable im Konstruktor on Fri, 20 Sep 2013 10:23:56 GMT]]></title><description><![CDATA[<p>Vielen Dank für die Antwort, jetzt funktioniert es. Für die Nachwelt hier mal die korrigierte Fassung:</p>
<pre><code>#include &lt;iostream&gt;

using namespace std;

class Tier
{
   public:
      virtual void Ausgabe(){cout &lt;&lt; &quot;Size: &quot; &lt;&lt; size &lt;&lt; endl;};
      int size;

      Tier(int size): size(size) {};
};

class Hund : public Tier
{
   public:
      void Ausgabe(){size = size+2; cout &lt;&lt; size &lt;&lt; endl;}
      Hund(int size): Tier(size) {};
};

int main()
{
   Hund EinHund(5);

   EinHund.Ausgabe();

   return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2353978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2353978</guid><dc:creator><![CDATA[phanlipo]]></dc:creator><pubDate>Fri, 20 Sep 2013 10:23:56 GMT</pubDate></item></channel></rss>