<?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[Können sich Konstruktoren gegenseitig aufrufen?]]></title><description><![CDATA[<p>Hallo Forum,</p>
<p>können sich Konstruktoren gegenseitig aufrufen? Wenn ich mit dem Debugger durchlaufe sieht es so aus als wenn 2 Objekte erstellt worden sind.<br />
Wenn es nicht anders geht muß ich den Code in extra Funktionen auslagern...</p>
<pre><code class="language-cpp">class A {
public:
	A(int i) {
		m = i;
	}

	A(int i, int j) {
		A(i); // Wenn ich hier i durch 1 ersetze geht es.
		if(m==i) {
			// m ist hier wieder irgendeine Zahl
			// Also hat der geschachtelte ktor Aufruf 2 Objekte erstellt?
		}
	}

	int m;

};

int main(int argc, char* argv[]) {
	A *oA;

	oA = new A(111, 2222);
	return 0;
</code></pre>
<p>}</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/190523/können-sich-konstruktoren-gegenseitig-aufrufen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 18:50:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/190523.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 23 Aug 2007 17:12:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Können sich Konstruktoren gegenseitig aufrufen? on Thu, 23 Aug 2007 17:12:09 GMT]]></title><description><![CDATA[<p>Hallo Forum,</p>
<p>können sich Konstruktoren gegenseitig aufrufen? Wenn ich mit dem Debugger durchlaufe sieht es so aus als wenn 2 Objekte erstellt worden sind.<br />
Wenn es nicht anders geht muß ich den Code in extra Funktionen auslagern...</p>
<pre><code class="language-cpp">class A {
public:
	A(int i) {
		m = i;
	}

	A(int i, int j) {
		A(i); // Wenn ich hier i durch 1 ersetze geht es.
		if(m==i) {
			// m ist hier wieder irgendeine Zahl
			// Also hat der geschachtelte ktor Aufruf 2 Objekte erstellt?
		}
	}

	int m;

};

int main(int argc, char* argv[]) {
	A *oA;

	oA = new A(111, 2222);
	return 0;
</code></pre>
<p>}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1350644</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1350644</guid><dc:creator><![CDATA[martin_salo]]></dc:creator><pubDate>Thu, 23 Aug 2007 17:12:09 GMT</pubDate></item><item><title><![CDATA[Reply to Können sich Konstruktoren gegenseitig aufrufen? on Thu, 23 Aug 2007 17:21:29 GMT]]></title><description><![CDATA[<p>Ich bin noch Anfänger, aber ich glaube das Stichwort was du suchst, ist 'Vererbung'.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1350647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1350647</guid><dc:creator><![CDATA[Nite]]></dc:creator><pubDate>Thu, 23 Aug 2007 17:21:29 GMT</pubDate></item><item><title><![CDATA[Reply to Können sich Konstruktoren gegenseitig aufrufen? on Thu, 23 Aug 2007 17:27:54 GMT]]></title><description><![CDATA[<p>Konstruktoren ein und dasselben Objektes können sich nicht gegenseitig aufrufen.<br />
In deinem Beispiel wird im Konstruktor nur ein temporäres Objekt vom Typ A angelegt.<br />
Ein Lösungsansatz ist es eine private initialize Methode zu schreiben, die dann in den Konstruktoren aufgerufen werden kann.</p>
<p>P.S.: Ich meine mal gelesen zu haben, dass im neuen C++ Standard sowas eingeführt werden soll.</p>
<p>Gruß<br />
Don06</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1350648</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1350648</guid><dc:creator><![CDATA[Don06]]></dc:creator><pubDate>Thu, 23 Aug 2007 17:27:54 GMT</pubDate></item><item><title><![CDATA[Reply to Können sich Konstruktoren gegenseitig aufrufen? on Thu, 23 Aug 2007 18:25:38 GMT]]></title><description><![CDATA[<p>Die Frage wurde hier schon einmal gestellt. Ich stand vor dem selben Problem.</p>
<p>Zusammengefasst: Eine Möglichkeit war es, gemeinsame Initialisierungen in einer separaten (privaten) Methode (z.B. void init(...)) durchzuführen, welche von den Konstruktoren aufgerufen wird.</p>
<p>Grüße...</p>
<p>Heiko</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1350663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1350663</guid><dc:creator><![CDATA[bwbg]]></dc:creator><pubDate>Thu, 23 Aug 2007 18:25:38 GMT</pubDate></item><item><title><![CDATA[Reply to Können sich Konstruktoren gegenseitig aufrufen? on Fri, 24 Aug 2007 09:50:21 GMT]]></title><description><![CDATA[<p>Ok 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="🙂"
    /><br />
Dann lagere ich den Code aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351009</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351009</guid><dc:creator><![CDATA[martin_salo]]></dc:creator><pubDate>Fri, 24 Aug 2007 09:50:21 GMT</pubDate></item><item><title><![CDATA[Reply to Können sich Konstruktoren gegenseitig aufrufen? on Fri, 24 Aug 2007 10:11:31 GMT]]></title><description><![CDATA[<p>das solltest du eher so schreiben:</p>
<pre><code class="language-cpp">class A {
public:
	A(int i) :m(i){}

	A(int i, int j) :m(i) {}

	int m;
};
</code></pre>
<p>das verdeutlich zum einen, dass es sich um eine initialisierung handelt und zum anderen verhindert es bei -O0, das dein code m zweimal initialisiert. einmal mit 0 und dann mit i.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351025</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351025</guid><dc:creator><![CDATA[ghorst]]></dc:creator><pubDate>Fri, 24 Aug 2007 10:11:31 GMT</pubDate></item><item><title><![CDATA[Reply to Können sich Konstruktoren gegenseitig aufrufen? on Fri, 24 Aug 2007 13:47:09 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class A {
public:
	A(int i) :m(i){} // was ist das denn für eine Syntax?

	A(int i, int j) :m(i) {}

	int m;
};
</code></pre>
<p>Was meint diese :m(i) im Konstruktor genau? Könnte mir jemand einen Link zu dieser Syntax liefern?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351207</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351207</guid><dc:creator><![CDATA[martin_salo]]></dc:creator><pubDate>Fri, 24 Aug 2007 13:47:09 GMT</pubDate></item><item><title><![CDATA[Reply to Können sich Konstruktoren gegenseitig aufrufen? on Fri, 24 Aug 2007 13:52:27 GMT]]></title><description><![CDATA[<p>Initialisierungsliste<br />
<a href="http://tutorial.schornboeck.net/initliste.htm" rel="nofollow">http://tutorial.schornboeck.net/initliste.htm</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351210</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351210</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Fri, 24 Aug 2007 13:52:27 GMT</pubDate></item><item><title><![CDATA[Reply to Können sich Konstruktoren gegenseitig aufrufen? on Fri, 24 Aug 2007 13:53:49 GMT]]></title><description><![CDATA[<p><a href="http://www.cpp-tutor.de/cpp/le10/le10_01.htm" rel="nofollow">http://www.cpp-tutor.de/cpp/le10/le10_01.htm</a></p>
<p>Da is meiner Meinung ne nette Erklärung zu dem Doppelpunkt.</p>
<p>Grunsätzlich bedeutet der Doppelpunkt, dass die Attribute beim Erzeugen des Objektes sofort mit dem entsprechend parameterisierten Konstruktoren erzeugt werden.</p>
<p>Ansonsten würden sie zunächst mit dem Default-Konstruktor erzeugt und Ihnen dann später ein entsprechend korrekt konstruiertes Objekt zugewiesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351211</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351211</guid><dc:creator><![CDATA[noNeed 4 aNick]]></dc:creator><pubDate>Fri, 24 Aug 2007 13:53:49 GMT</pubDate></item><item><title><![CDATA[Reply to Können sich Konstruktoren gegenseitig aufrufen? on Fri, 24 Aug 2007 14:20:37 GMT]]></title><description><![CDATA[<p>Danke für die Links <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/1351240</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351240</guid><dc:creator><![CDATA[martin_salo]]></dc:creator><pubDate>Fri, 24 Aug 2007 14:20:37 GMT</pubDate></item></channel></rss>