<?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[Vererbung]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>hab mal ne Frage zu Vererbung.</p>
<p>Ich habe eine Basisklasse mit nem haufen variablen die initialisiert werden müssen.<br />
Der Konstruktor würde dann in etwa so aussehen</p>
<pre><code class="language-cpp">class base
{
    base(var1, var2, var3, ...)
    {
       //Tu was
    }
}
</code></pre>
<p>Wenn ich nun eine Klasse ableite, muss ihr Konstruktor ja mindestens die selben Variablen haben wie der der Basisklasse um diese in der Basisklasse zu initialisieren.</p>
<pre><code class="language-cpp">class A : public base
{
     A(var1, var2, var3, ...)
             :base(var1, var2, var3, ...)
     {
         //Tu was
     }
}
</code></pre>
<p>Also wie man sieht leite ich die Variablen einfach per Initliste an die Basisklasse weiter.<br />
Mein Problem is nun, dass ich in der Basisklasse weitere Variablen hinzufügen möchte, die ich später auch per Konstruktor setze. Das würde aber zur Folge haben dass ich in jeder Klasse die von dieser erbt auch den Konstruktor entsprechend anpassen muss.<br />
Das hört sich nach nem haufen tipperei an <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
<p>Gibts da nich einen Mechanismus der mir diese Arbeit erspart??</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/235910/vererbung</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 03:27:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/235910.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 08 Mar 2009 12:44:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vererbung on Sun, 08 Mar 2009 12:44:32 GMT]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>hab mal ne Frage zu Vererbung.</p>
<p>Ich habe eine Basisklasse mit nem haufen variablen die initialisiert werden müssen.<br />
Der Konstruktor würde dann in etwa so aussehen</p>
<pre><code class="language-cpp">class base
{
    base(var1, var2, var3, ...)
    {
       //Tu was
    }
}
</code></pre>
<p>Wenn ich nun eine Klasse ableite, muss ihr Konstruktor ja mindestens die selben Variablen haben wie der der Basisklasse um diese in der Basisklasse zu initialisieren.</p>
<pre><code class="language-cpp">class A : public base
{
     A(var1, var2, var3, ...)
             :base(var1, var2, var3, ...)
     {
         //Tu was
     }
}
</code></pre>
<p>Also wie man sieht leite ich die Variablen einfach per Initliste an die Basisklasse weiter.<br />
Mein Problem is nun, dass ich in der Basisklasse weitere Variablen hinzufügen möchte, die ich später auch per Konstruktor setze. Das würde aber zur Folge haben dass ich in jeder Klasse die von dieser erbt auch den Konstruktor entsprechend anpassen muss.<br />
Das hört sich nach nem haufen tipperei an <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
<p>Gibts da nich einen Mechanismus der mir diese Arbeit erspart??</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1676087</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1676087</guid><dc:creator><![CDATA[Toudy]]></dc:creator><pubDate>Sun, 08 Mar 2009 12:44:32 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Sun, 08 Mar 2009 12:48:14 GMT]]></title><description><![CDATA[<p>Du kannst einen Defaultwert in der Basisklasse definieren.</p>
<p>so z.B:</p>
<pre><code class="language-cpp">class base
{
    base(var1, var2, var3, ... , var255 = 0)
    {
       //Tu was
    }
}
</code></pre>
<p>Dann wird einfach mal der angenommen. Wenn du in einer abgeleiteten Klasse einen anderen Wert haben willst, musst du das wohl anpassen.</p>
<p>Oder du lässt das mit dem ctor ganz sein und lässt die Werte über setter setzen, dann kannst du das beliebig erweitern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1676091</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1676091</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 08 Mar 2009 12:48:14 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Sun, 08 Mar 2009 12:51:28 GMT]]></title><description><![CDATA[<p>Toudy schrieb:</p>
<blockquote>
<p>Gibts da nich einen Mechanismus der mir diese Arbeit erspart??</p>
</blockquote>
<p>Entweder Copy&amp;Paste, oder wie ich angefangen habe: Den Konstruktor nicht zu missbrauchen.<br />
Der Konstruktor soll zwar initialisieren, aber das heisst auch, dass Defaultwerte durchaus ok wären. Ich fange persönlich mehr und mehr an, meine Konstruktoren klein zu halten. Die Werte mit den Defaultwerten zu befüllen und wenn sie anders sein sollen, dann kann ich die Setter der Klasse benutzen. Gerade bei der Vererbung erspart einem dies eine Menge an Tipparbeit bei den Konstruktoren.</p>
<p>Der Konstruktor ist in meinen Augen ein Initializer und kein Setter. Gut man kann sich darüber streiten, ob ein Initializer nicht auch gleich eine Art von Setter ist, aber ich bin inzwischen eher der Meinung, dass man die Konstruktoren nicht so einsetzen sollte. Dem Konstruktor sollte man nur übergeben, was er auch wirklich braucht.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1676092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1676092</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sun, 08 Mar 2009 12:51:28 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Sun, 08 Mar 2009 13:06:42 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p>Der Konstruktor ist in meinen Augen ein Initializer und kein Setter. Gut man kann sich darüber streiten, ob ein Initializer nicht auch gleich eine Art von Setter ist, aber ich bin inzwischen eher der Meinung, dass man die Konstruktoren nicht so einsetzen sollte. Dem Konstruktor sollte man nur übergeben, was er auch wirklich braucht.</p>
</blockquote>
<p>Sehe ich auch so. Er soll gerade so viele Parameter empfangen, dass das Objekt Sinn macht und im gegebenen Konzept Sinn macht. Einfache Werte, die sein können, wie so wollen sollten da nicht rein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1676098</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1676098</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 08 Mar 2009 13:06:42 GMT</pubDate></item></channel></rss>