<?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[Kaskadierte ctor-Aufrufe?]]></title><description><![CDATA[<p>Hi,</p>
<p>ich frage mich gerade, ob man in C++ ctor-Aufrufe kaskadieren kann. Ich habe das bisher irgendwie nie gebraucht, könnte es jetzt aber nutzen. Ansich kann man den ctor ja aufrufen, aber die Elementinitialisierer funktionieren dann nicht. <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>Nicht weiter verwunderlich ist, dass</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class Cascade
{
private:
	int x;

public:
	Cascade() : x(0) {}

	Cascade(int z)
	{
		Cascade();
		x += z;
	}
};

int main()
{
	Cascade x;
	Cascade y(10);
}
</code></pre>
<p>hier x den Memberwert 0 hat und y den Membertwert undefiniert+10.</p>
<p>Kann ich das irgendwie lösen? Oder muss ich die Elementinitialisierer rausschmeißen? Aber wenn ich noch einen Basisklassen-ctor füttern muss, klappt das so nicht. Oder ich muss die Elementinitialisierer redundant jedes Mal neu hinschreiben und rufe halt für anderweitige Initialisierungen die anderen ctors auf. Alles nicht wirklich schön... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/290333/kaskadierte-ctor-aufrufe</link><generator>RSS for Node</generator><lastBuildDate>Tue, 18 Aug 2026 15:51:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/290333.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 24 Jul 2011 15:26:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Kaskadierte ctor-Aufrufe? on Sun, 24 Jul 2011 15:28:48 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich frage mich gerade, ob man in C++ ctor-Aufrufe kaskadieren kann. Ich habe das bisher irgendwie nie gebraucht, könnte es jetzt aber nutzen. Ansich kann man den ctor ja aufrufen, aber die Elementinitialisierer funktionieren dann nicht. <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>Nicht weiter verwunderlich ist, dass</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class Cascade
{
private:
	int x;

public:
	Cascade() : x(0) {}

	Cascade(int z)
	{
		Cascade();
		x += z;
	}
};

int main()
{
	Cascade x;
	Cascade y(10);
}
</code></pre>
<p>hier x den Memberwert 0 hat und y den Membertwert undefiniert+10.</p>
<p>Kann ich das irgendwie lösen? Oder muss ich die Elementinitialisierer rausschmeißen? Aber wenn ich noch einen Basisklassen-ctor füttern muss, klappt das so nicht. Oder ich muss die Elementinitialisierer redundant jedes Mal neu hinschreiben und rufe halt für anderweitige Initialisierungen die anderen ctors auf. Alles nicht wirklich schön... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2097221</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2097221</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Sun, 24 Jul 2011 15:28:48 GMT</pubDate></item><item><title><![CDATA[Reply to Kaskadierte ctor-Aufrufe? on Sun, 24 Jul 2011 15:46:29 GMT]]></title><description><![CDATA[<p>Soweit ich gerade recherchiert habe, nennt sich das &quot;delegating constructors&quot;, ein neues Feature von C++0x, welches, nach meinem Test, von Visual C++ 2010 Express (noch) nicht unterstützt wird.</p>
<pre><code class="language-cpp">class Cascade
{
private:
    int x;

public:
    Cascade() : x(0) {}
    Cascade(int z) : Cascade()
    {
        x += z;
    }
};
</code></pre>
<p>Kann aber nichts garantieren, mit dem neuen Standard kenne ich mich beim besten Willen noch nicht aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2097225</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2097225</guid><dc:creator><![CDATA[defaultplayer**]]></dc:creator><pubDate>Sun, 24 Jul 2011 15:46:29 GMT</pubDate></item><item><title><![CDATA[Reply to Kaskadierte ctor-Aufrufe? on Sun, 24 Jul 2011 15:57:24 GMT]]></title><description><![CDATA[<p>Jup, den Code hatte ich meinem VC auch Mal drin und ging nich. Aber wenn es ein neues Feature ist, dann ist es eben kein altes, also wäre die Frage beantwortet, danke. <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/2097230</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2097230</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Sun, 24 Jul 2011 15:57:24 GMT</pubDate></item><item><title><![CDATA[Reply to Kaskadierte ctor-Aufrufe? on Mon, 25 Jul 2011 09:31:12 GMT]]></title><description><![CDATA[<p>Eisflamme schrieb:</p>
<blockquote>
<pre><code class="language-cpp">Cascade(int z)
	{
		Cascade();
		x += z;
	}
};
</code></pre>
</blockquote>
<p>Tut nicht das, was du denkst. Du erzeugst hier im Ctor ein temporäres (weil unbenanntes) Cascade-Objekt, das default-konstruiert wird, mit dem du nichts machst und das am Ende des Statements, also beim Semikolon, gleich wieder zersttört wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2097521</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2097521</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 25 Jul 2011 09:31:12 GMT</pubDate></item><item><title><![CDATA[Reply to Kaskadierte ctor-Aufrufe? on Mon, 25 Jul 2011 10:16:12 GMT]]></title><description><![CDATA[<p>Ich bin diese Art des Aufbaus von Konstruktoren auch von C# gewohnt und musste jetzt auf Init-Funktionen zurückgreifen, ein bisschen umständlicher, aber bringt denselben Effekt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2097539</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2097539</guid><dc:creator><![CDATA[Bonzy]]></dc:creator><pubDate>Mon, 25 Jul 2011 10:16:12 GMT</pubDate></item><item><title><![CDATA[Reply to Kaskadierte ctor-Aufrufe? on Mon, 25 Jul 2011 10:30:06 GMT]]></title><description><![CDATA[<p>Eisflamme schrieb:</p>
<blockquote>
<p>Hi,</p>
<p>ich frage mich gerade, ob man in C++ ctor-Aufrufe kaskadieren kann. Ich habe das bisher irgendwie nie gebraucht, könnte es jetzt aber nutzen. Ansich kann man den ctor ja aufrufen, aber die Elementinitialisierer funktionieren dann nicht. <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>Nicht weiter verwunderlich ist, dass</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class Cascade
{
private:
	int x;

public:
	Cascade() : x(0) {}

	Cascade(int z)
	{
		Cascade();
		x += z;
	}
};

int main()
{
	Cascade x;
	Cascade y(10);
}
</code></pre>
<p>hier x den Memberwert 0 hat und y den Membertwert undefiniert+10.</p>
<p>Kann ich das irgendwie lösen? Oder muss ich die Elementinitialisierer rausschmeißen? Aber wenn ich noch einen Basisklassen-ctor füttern muss, klappt das so nicht. Oder ich muss die Elementinitialisierer redundant jedes Mal neu hinschreiben und rufe halt für anderweitige Initialisierungen die anderen ctors auf. Alles nicht wirklich schön... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Wie bereits beschrieben, ist das aktuell noch nicht möglich. Alternativ könntest du natürlich auch mit Makros etwas machen. Das ist sicher auch nicht schön, aber zumindest zweckmäßig, denke ich:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

#define CASCADE_CTOR() x(0)

class Cascade
{
private:
    int x;

public:
    Cascade() : CASCADE_CTOR()
	{
	}

    Cascade(int z) : CASCADE_CTOR()
    {
	   x += z;
    }
};

int main()
{
    Cascade x;
    Cascade y(10);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2097540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2097540</guid><dc:creator><![CDATA[jkljkl]]></dc:creator><pubDate>Mon, 25 Jul 2011 10:30:06 GMT</pubDate></item><item><title><![CDATA[Reply to Kaskadierte ctor-Aufrufe? on Mon, 25 Jul 2011 11:37:40 GMT]]></title><description><![CDATA[<p>pumuckl:<br />
Ups. Gut, das habe ich natürlich befürchtet. Kann ich dann auch ohne Elementinitialisierer ctors überhaupt nicht verschachteln (außer über Hilfsfunktion)?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2097558</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2097558</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Mon, 25 Jul 2011 11:37:40 GMT</pubDate></item><item><title><![CDATA[Reply to Kaskadierte ctor-Aufrufe? on Mon, 25 Jul 2011 11:46:12 GMT]]></title><description><![CDATA[<p>Eisflamme schrieb:</p>
<blockquote>
<p>pumuckl:<br />
Ups. Gut, das habe ich natürlich befürchtet. Kann ich dann auch ohne Elementinitialisierer ctors überhaupt nicht verschachteln (außer über Hilfsfunktion)?</p>
</blockquote>
<p>Nein, es geht (bisher) schlicht nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2097564</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2097564</guid><dc:creator><![CDATA[Bonzy]]></dc:creator><pubDate>Mon, 25 Jul 2011 11:46:12 GMT</pubDate></item><item><title><![CDATA[Reply to Kaskadierte ctor-Aufrufe? on Mon, 25 Jul 2011 11:49:24 GMT]]></title><description><![CDATA[<p>Eisflamme schrieb:</p>
<blockquote>
<p>pumuckl:<br />
Ups. Gut, das habe ich natürlich befürchtet. Kann ich dann auch ohne Elementinitialisierer ctors überhaupt nicht verschachteln (außer über Hilfsfunktion)?</p>
</blockquote>
<p>In C++98/03 nicht. In C++0x ja. Kann allerdings bisher nur der IBM XLC 11.1 Compiler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2097567</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2097567</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 25 Jul 2011 11:49:24 GMT</pubDate></item><item><title><![CDATA[Reply to Kaskadierte ctor-Aufrufe? on Mon, 25 Jul 2011 13:06:55 GMT]]></title><description><![CDATA[<p>Okay, danke. <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="🙂"
    /> Hoffe, der Standard wird dann Mal bald released.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2097607</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2097607</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Mon, 25 Jul 2011 13:06:55 GMT</pubDate></item><item><title><![CDATA[Reply to Kaskadierte ctor-Aufrufe? on Mon, 25 Jul 2011 13:29:23 GMT]]></title><description><![CDATA[<p>Eisflamme schrieb:</p>
<blockquote>
<p>Okay, danke. <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="🙂"
    /> Hoffe, der Standard wird dann Mal bald released.</p>
</blockquote>
<p>Wann der released wird ist zweitrangig (ich glaube September/Oktober ist der Plan). Wichtig ist, wann der/die Compiler deiner Wahl die entsprechenden Features unterstützen <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2097620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2097620</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 25 Jul 2011 13:29:23 GMT</pubDate></item><item><title><![CDATA[Reply to Kaskadierte ctor-Aufrufe? on Mon, 25 Jul 2011 13:36:08 GMT]]></title><description><![CDATA[<p>Dann hoffe ich, dass MSVC bald Mal den kompletten Standard reinsteckt. :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2097625</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2097625</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Mon, 25 Jul 2011 13:36:08 GMT</pubDate></item></channel></rss>