<?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[Konstruktor initializer list]]></title><description><![CDATA[<p>Hi,<br />
Ich wurde vor kurzem gefragt, wo denn der Unterschied liegt zwischen:</p>
<pre><code class="language-cpp">Class A
{
  public:
  A()
  : m_a(0)
  , m_b(0)
  , m_oc(&quot;test&quot;)
  {};

  int m_a;
  int m_b;
  Otherclass m_oc;
};
</code></pre>
<pre><code class="language-cpp">Class A
{
  public:
  A()
  {
    m_a = 0;
    m_b = 0;
    m_oc = Otherclass(&quot;test&quot;);
  };

  int m_a;
  int m_b;
  Otherclass m_oc;
};
</code></pre>
<p>Ich weiß, dass die obere Variante vorzuziehen ist, aber warum?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/228905/konstruktor-initializer-list</link><generator>RSS for Node</generator><lastBuildDate>Mon, 28 Sep 2026 08:22:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/228905.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 04 Dec 2008 11:04:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Konstruktor initializer list on Thu, 04 Dec 2008 11:04:49 GMT]]></title><description><![CDATA[<p>Hi,<br />
Ich wurde vor kurzem gefragt, wo denn der Unterschied liegt zwischen:</p>
<pre><code class="language-cpp">Class A
{
  public:
  A()
  : m_a(0)
  , m_b(0)
  , m_oc(&quot;test&quot;)
  {};

  int m_a;
  int m_b;
  Otherclass m_oc;
};
</code></pre>
<pre><code class="language-cpp">Class A
{
  public:
  A()
  {
    m_a = 0;
    m_b = 0;
    m_oc = Otherclass(&quot;test&quot;);
  };

  int m_a;
  int m_b;
  Otherclass m_oc;
};
</code></pre>
<p>Ich weiß, dass die obere Variante vorzuziehen ist, aber warum?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1625353</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1625353</guid><dc:creator><![CDATA[vlad_tepesch]]></dc:creator><pubDate>Thu, 04 Dec 2008 11:04:49 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor initializer list on Thu, 04 Dec 2008 11:08:35 GMT]]></title><description><![CDATA[<p>Mehrere Gründe:<br />
Nur mit der Liste lassen sich Memberkonstanten und -Referenzen initialisieren. Das geht im Konstruktorrumpf gar nicht.<br />
Außerdem werden im Falle von komplexen Objekten als Member im zweiten Fall erst die Standardkonstruktoren aufgerufden, was u.U. noch eine ganze Reihe weiterer Konstruktoraufrufe nach sich zieht (z.B. wenn das komplexe Memberobjekt selbst noch komplexe Objekte enthält, wie z.B. std::string), und dann nochmal der Zuweisungsoperator. Das kostet Zeit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1625354</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1625354</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Thu, 04 Dec 2008 11:08:35 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor initializer list on Thu, 04 Dec 2008 11:08:44 GMT]]></title><description><![CDATA[<p>Nennt sich übrigens Initialisierungsliste...<br />
Weil sie schneller ist (in der unteren Lösung werden die beiden ints erst erstellt und dann extra zugewiesen - mit IL (das geht immer so schwer zu tippen ^^) passiert das gleichzeitig)...<br />
Auch muss man const-Member per IL initialisieren...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1625355</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1625355</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 04 Dec 2008 11:08:44 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor initializer list on Thu, 04 Dec 2008 14:58:01 GMT]]></title><description><![CDATA[<p>danke,<br />
stimmt, an konstanten habe ich nicht gedacht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1625483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1625483</guid><dc:creator><![CDATA[vlad_tepesch]]></dc:creator><pubDate>Thu, 04 Dec 2008 14:58:01 GMT</pubDate></item></channel></rss>