<?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[initialisierungsliste]]></title><description><![CDATA[<p>Ich habe kein Problem damit Initialisierungslisten anzuwenden aber<br />
Ich habe eine Frage:</p>
<p>Wo liegt jetzt genau der Laufzeitvorteil von Initialisierungslisten?</p>
<p>Persönlich finde ich es nämlich schade dass meine Konstruktoren meistens leer sind weil alles davor in der Initialisierungsliste steht, nur ab und an hab ich da ne funktion wie init() stehen</p>
<p>irgendwie beunruhiogt mich das, wenn auch wahrscheinlich grundlos</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/245317/initialisierungsliste</link><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 21:52:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/245317.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 12 Jul 2009 18:15:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to initialisierungsliste on Sun, 12 Jul 2009 18:15:41 GMT]]></title><description><![CDATA[<p>Ich habe kein Problem damit Initialisierungslisten anzuwenden aber<br />
Ich habe eine Frage:</p>
<p>Wo liegt jetzt genau der Laufzeitvorteil von Initialisierungslisten?</p>
<p>Persönlich finde ich es nämlich schade dass meine Konstruktoren meistens leer sind weil alles davor in der Initialisierungsliste steht, nur ab und an hab ich da ne funktion wie init() stehen</p>
<p>irgendwie beunruhiogt mich das, wenn auch wahrscheinlich grundlos</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1741633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1741633</guid><dc:creator><![CDATA[greetz]]></dc:creator><pubDate>Sun, 12 Jul 2009 18:15:41 GMT</pubDate></item><item><title><![CDATA[Reply to initialisierungsliste on Sun, 12 Jul 2009 18:17:22 GMT]]></title><description><![CDATA[<p>Wenn dus nicht initialisierst verschwendest du theoretisch in wenig Zeit, weil der Konstruktor je nach Typ das die Daten füllt oder manchmal auch nicht (undefiniert, zufällige werte).<br />
Es ist ratsam Initialisierungslisten zu bevorzugen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1741636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1741636</guid><dc:creator><![CDATA[ProInitLIst]]></dc:creator><pubDate>Sun, 12 Jul 2009 18:17:22 GMT</pubDate></item><item><title><![CDATA[Reply to initialisierungsliste on Sun, 12 Jul 2009 18:44:03 GMT]]></title><description><![CDATA[<p>greetz schrieb:</p>
<blockquote>
<p>Persönlich finde ich es nämlich schade dass meine Konstruktoren meistens leer sind weil alles davor in der Initialisierungsliste steht</p>
</blockquote>
<p>Ohh... <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="😞"
    /> <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>
<p>Der Laufzeitvorteil ergibt sich erst bei komplexeren Typen, bei denen die Instanz zuerst standardkonstruiert und nachher zugewiesen wird, anstatt sie direkt zu initialisieren. Wohl ist die Initialisierungsliste aber unter gewissen Bedingungen nicht nur vorteilhaft, sondern notwendig:</p>
<ul>
<li>Die Klasse enthält <code>const</code> -qualifizierte Objekte als Membervariablen.</li>
<li>Die Klasse enthält Referenzen.</li>
<li>Einige der Member unterstützen aus anderen Gründen keine Zuweisungs-Semantik.</li>
<li>Gewisse Member oder Basisklassen besitzen keinen zugänglichen Standardkonstruktor.</li>
</ul>
<p>ProInitLIst schrieb:</p>
<blockquote>
<p>Es ist ratsam Initialisierungslisten zu bevorzugen.</p>
</blockquote>
<p>Genau. Natürlich gibt es Ausnahmen, aber im Allgemeinen fährt man mit der Initialisierungsliste gut.</p>
<p><em>Edit: Fall hinzugefügt</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1741644</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1741644</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 12 Jul 2009 18:44:03 GMT</pubDate></item><item><title><![CDATA[Reply to initialisierungsliste on Sun, 12 Jul 2009 18:40:03 GMT]]></title><description><![CDATA[<p>wenn du in der Klasse ein Member (oder eine Basisklasse) hast, die keinen Default-Ctor hat, dann muss es in der initliste konstruiert werden.<br />
Wenn der member einen Default-Ctor hat und du erst im Ctor-Body einen Wert zuweist, dann geschieht folgendes:</p>
<ol>
<li>Das Objekt wird initialisiert und der default-Ctor des Member wird aufgerufen.</li>
<li>Bei der Wertzweisung wird der zuzuweisende Wert konstruiert (ein zweites Objekt vom selben Typ) und der operator= aufgerufen.</li>
</ol>
<p>Das ist eindeutig mehr Aufwand als gleich bei der initialisierung den richtigen Konstruktor aufzurufen <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/1741647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1741647</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Sun, 12 Jul 2009 18:40:03 GMT</pubDate></item></channel></rss>