<?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[Konstruktorenverkettung bei Templates]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe dieses Template geschrieben:</p>
<pre><code>template &lt;class T&gt; class MyTemplate{
public:
   MyTemplate(int value){
   }

   MyTemplate() : MyTemplate(10){
   }
};
</code></pre>
<p>Die parameterlose Version des Konstruktors soll den Konstruktor mit Parameter aufrufen und einen Default-Wert übergeben. Allerdings funktioniert das nicht. Er sagt mir dass diese Version des Konstruktors weder Element der Klasse noch der Basisklasse ist.</p>
<p>Wie macht man das richtig?</p>
<p>Danke!</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/134857/konstruktorenverkettung-bei-templates</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 19:19:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/134857.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 29 Jan 2006 11:48:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Konstruktorenverkettung bei Templates on Sun, 29 Jan 2006 11:48:41 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe dieses Template geschrieben:</p>
<pre><code>template &lt;class T&gt; class MyTemplate{
public:
   MyTemplate(int value){
   }

   MyTemplate() : MyTemplate(10){
   }
};
</code></pre>
<p>Die parameterlose Version des Konstruktors soll den Konstruktor mit Parameter aufrufen und einen Default-Wert übergeben. Allerdings funktioniert das nicht. Er sagt mir dass diese Version des Konstruktors weder Element der Klasse noch der Basisklasse ist.</p>
<p>Wie macht man das richtig?</p>
<p>Danke!</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/979679</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/979679</guid><dc:creator><![CDATA[ChrisR]]></dc:creator><pubDate>Sun, 29 Jan 2006 11:48:41 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktorenverkettung bei Templates on Sun, 29 Jan 2006 12:26:00 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>am besten ist es, du verwendest Default-Parameter. Dann nimmt er, wenn du nichts angibst, 10 als Default-Wert und sonst eben das, was du mitgibst:</p>
<pre><code class="language-cpp">template &lt;class T&gt; 
class MyTemplate {
private:
  int val_;

public:
  MyTemplate(int value=10) : val_(value) { }
};

MyTemplate&lt;int&gt; a;  //val_ = 10
MyTemplate&lt;int&gt; b(50);  //val_ = 50
</code></pre>
<p>Es gibt im Übrigen auch cpp Tags, dann wird der Code gehighlighted.</p>
<p>MfG</p>
<p>GPC</p>
]]></description><link>https://www.c-plusplus.net/forum/post/979709</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/979709</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Sun, 29 Jan 2006 12:26:00 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktorenverkettung bei Templates on Sun, 29 Jan 2006 12:28:10 GMT]]></title><description><![CDATA[<p>Danke, werde es so machen.</p>
<p>Aber rein interessehalber: es muss doch auch auf die andere Art gehen, oder? Was ist zum Beispiel, wenn ein Konstruktor 2 Parameter bekommt und die Summe der beiden an die Version mit nur einem Parameter weitergeben soll?</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/979712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/979712</guid><dc:creator><![CDATA[ChrisR]]></dc:creator><pubDate>Sun, 29 Jan 2006 12:28:10 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktorenverkettung bei Templates on Sun, 29 Jan 2006 12:38:55 GMT]]></title><description><![CDATA[<p>ChrisR schrieb:</p>
<blockquote>
<p>Aber rein interessehalber: es muss doch auch auf die andere Art gehen, oder?</p>
</blockquote>
<p>Nein. So etwas geht in C++ nicht.</p>
<blockquote>
<p>Was ist zum Beispiel, wenn ein Konstruktor 2 Parameter bekommt und die Summe der beiden an die Version mit nur einem Parameter weitergeben soll?</p>
</blockquote>
<p>Stattdessen kannst du Folgendes tun:</p>
<pre><code class="language-cpp">class foo
{
    int value;

    void init(int v) { value = v; } // übernimmt die allgemeine Initialisierung.

    public:
        foo(int v1, int v2) 
        { 
            init(v1 + v2); // init mit v1 + v2 aufrufen.
        }
        foo(int v)
        {
            init(v); // init mit v aufrufen.
        }
};
</code></pre>
<p>Wobei du hier ebenfalls Default-Parameter verwenden kannst.</p>
<p>Gruß Caipi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/979721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/979721</guid><dc:creator><![CDATA[Caipi]]></dc:creator><pubDate>Sun, 29 Jan 2006 12:38:55 GMT</pubDate></item></channel></rss>