<?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[wofür ist initialierungslist gut]]></title><description><![CDATA[<p>wenn ich initialierungliste verwende, dann kann ich z.B. baseclass member initialisieren, ohne dafür eine Instanz zu erzeugen, etwa so:</p>
<pre><code class="language-cpp">CDerivedClass::CDerivedClass
:CBaseClass(1, 2) //init baseclass's member
{
  //without CBaseClass* b = new CBaseClass(1,2)
}
</code></pre>
<p>aber wenn es gibt gar keine member in Base Class, ich brauch nur member in der abgeleitete Klasse zu initialieren (builtin type), dann</p>
<pre><code class="language-cpp">CDerivedClass::CDerivedClass
:i(0), j(0) //init baseclass's member
{
}
</code></pre>
<p>ist gleich wie</p>
<pre><code class="language-cpp">CDerivedClass::CDerivedClass
{
   i = 0;
   j = 0;
}
</code></pre>
<p>ist die Aussage richtig?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/219876/wofür-ist-initialierungslist-gut</link><generator>RSS for Node</generator><lastBuildDate>Wed, 07 Oct 2026 18:14:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/219876.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 08 Aug 2008 21:05:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to wofür ist initialierungslist gut on Fri, 08 Aug 2008 21:05:29 GMT]]></title><description><![CDATA[<p>wenn ich initialierungliste verwende, dann kann ich z.B. baseclass member initialisieren, ohne dafür eine Instanz zu erzeugen, etwa so:</p>
<pre><code class="language-cpp">CDerivedClass::CDerivedClass
:CBaseClass(1, 2) //init baseclass's member
{
  //without CBaseClass* b = new CBaseClass(1,2)
}
</code></pre>
<p>aber wenn es gibt gar keine member in Base Class, ich brauch nur member in der abgeleitete Klasse zu initialieren (builtin type), dann</p>
<pre><code class="language-cpp">CDerivedClass::CDerivedClass
:i(0), j(0) //init baseclass's member
{
}
</code></pre>
<p>ist gleich wie</p>
<pre><code class="language-cpp">CDerivedClass::CDerivedClass
{
   i = 0;
   j = 0;
}
</code></pre>
<p>ist die Aussage richtig?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1561678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1561678</guid><dc:creator><![CDATA[netrobot]]></dc:creator><pubDate>Fri, 08 Aug 2008 21:05:29 GMT</pubDate></item><item><title><![CDATA[Reply to wofür ist initialierungslist gut on Fri, 08 Aug 2008 21:22:16 GMT]]></title><description><![CDATA[<blockquote>
<p>aber wenn es gibt gar keine member in Base Class, ich brauch nur member in der abgeleitete Klasse zu initialieren (builtin type), dann</p>
</blockquote>
<p>Bitte gibt dir mehr Mühe bei der Forumulierung. Das liest sich wie ein Käsekuchen.</p>
<p>Und Nein. Das ist nicht dasselbe. Da wird zuerst eine Initialisierung und dann eine Zuweisung durchgeführt.<br />
Probier mal eine Konstante in die Klasse zu nehmen. Dann geht das nicht mehr.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1561683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1561683</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Fri, 08 Aug 2008 21:22:16 GMT</pubDate></item><item><title><![CDATA[Reply to wofür ist initialierungslist gut on Fri, 08 Aug 2008 21:52:38 GMT]]></title><description><![CDATA[<p>der compiler sieht wenn du</p>
<pre><code class="language-cpp">CDerivedClass::CDerivedClass() 
{ 
   i = 0; 
   j = 0; 
}
</code></pre>
<p>schreibst folgendes:</p>
<pre><code class="language-cpp">CDerivedClass::CDerivedClass()
: CBaseClass(), i(0), j(0)
{ 
   i = 0; 
   j = 0; 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1561697</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1561697</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Fri, 08 Aug 2008 21:52:38 GMT</pubDate></item><item><title><![CDATA[Reply to wofür ist initialierungslist gut on Fri, 08 Aug 2008 22:14:48 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Bitte gibt dir mehr Mühe bei der Forumulierung. Das liest sich wie ein Käsekuchen.</p>
</blockquote>
<p>Ich würde wetten, dass Deutsch nicht seine Muttersprache ist. Spar dir doch deine hilfreichen Hinweise lieber für die echten Deppen auf, die keinen vernünftigen Satz in ihrer eigenen Sprache zusammenbringen. Gibt ja genug davon hier.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1561702</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1561702</guid><dc:creator><![CDATA[grmlfx]]></dc:creator><pubDate>Fri, 08 Aug 2008 22:14:48 GMT</pubDate></item><item><title><![CDATA[Reply to wofür ist initialierungslist gut on Fri, 08 Aug 2008 22:19:13 GMT]]></title><description><![CDATA[<p>grmlfx schrieb:</p>
<blockquote>
<p>drakon schrieb:</p>
<blockquote>
<p>Bitte gibt dir mehr Mühe bei der Forumulierung. Das liest sich wie ein Käsekuchen.</p>
</blockquote>
<p>Ich würde wetten, dass Deutsch nicht seine Muttersprache ist. Spar dir doch deine hilfreichen Hinweise lieber für die echten Deppen auf, die keinen vernünftigen Satz in ihrer eigenen Sprache zusammenbringen. Gibt ja genug davon hier.</p>
</blockquote>
<p>Das habe ich mir auch gedacht, aber das ist kein Grund sich nicht Mühe zu geben.<br />
Und ich mache das nicht, weil ich mich über jemanden Lustig machen will, sondern weil ich wirklich Mühe hatte die Frage zu verstehen, wenn es so wirr forumliert ist und wenn er hier öfters postet, dann ist das Wichtig für alle Beteiligten, wenn er lernt besseres Deutsch zu schreiben. Zumindest Satzstellung usw, sollten stimmen, dass man ohne Mühe den Text lesen kann und dann weiss, was er will.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1561704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1561704</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Fri, 08 Aug 2008 22:19:13 GMT</pubDate></item><item><title><![CDATA[Reply to wofür ist initialierungslist gut on Fri, 08 Aug 2008 22:49:56 GMT]]></title><description><![CDATA[<p>blablabla deutschkenntnisse</p>
<p>es geht hier um den unterschied zwischen init liste und initialisieren im CTor</p>
<p>es ist so:</p>
<p>wenn du im CTor initialisierst macht dein computer ungefähr folgendes (stimmt nur von prinzip her, wie es umgesetzt ist ist ganz anders!)</p>
<pre><code class="language-cpp">class foo
{
    int a;   
};

foo::foo()
{
   a = 0;
}
</code></pre>
<p>der compiler macht das quasi so:<br />
er sieht int a als zeiger auf einen int und im konstruktor erzeugt er den zeiger wie mit new, danach weist er ihm einen beliebigen startwert zu, und im CTor setzt du dann a = 0</p>
<p>das verbraucht zeit</p>
<p>per init liste überspringt er den beliebigen startwert und setzt die variable direkt auf 0</p>
<p>ausserdem kann man per init lsit noch konstanten zuweisen</p>
<pre><code class="language-cpp">class test 
{
public:
   test(int x);
   int const a;  // = 5 geht nicht!
};

test::test(int x)
 : a(x)          // klappt alles ist ok
{
    a = x;       // geht nicht...
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1561706</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1561706</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Fri, 08 Aug 2008 22:49:56 GMT</pubDate></item><item><title><![CDATA[Reply to wofür ist initialierungslist gut on Sat, 09 Aug 2008 00:13:18 GMT]]></title><description><![CDATA[<blockquote>
<p>er sieht int a als zeiger auf einen int und im konstruktor erzeugt er den zeiger wie mit new, danach weist er ihm einen beliebigen startwert zu, und im CTor setzt du dann a = 0<br />
das verbraucht zeit</p>
<p>per init liste überspringt er den beliebigen startwert und setzt die variable direkt auf 0</p>
</blockquote>
<p>1. der Compiler muss hier keinen beliebigen Startwert zuweisen, der braucht nur die<br />
Zeit um den Platz zu allokieren(das gebe ich dir Recht, die Allokation kostet Zeit)<br />
2. wenn der Compiler macht wirklich einen Zeiger draus,(was der sowieso macht, egal ob per initlist od. in Ctor), dann ich sehe keinen Vorteil, weil die Zuweisung mit Default Wert wird nicht stattfinden.<br />
3. es sei denn,</p>
<pre><code class="language-cpp">CDerivedClass::CDerivedClass()
{
}
</code></pre>
<p>in diesem Moment der Ctor von Base Klass schon aufgerufen, Platz für i wird allokiert (Zeitverbrauch 1)<br />
dann in den geschleiften Klammern noch mal</p>
<pre><code class="language-cpp">{
  i = 0; //assignment operation called (Zeitverbrach 2)
}
</code></pre>
<p>d.h. wenn ich per initlist die Werte initialisiere, dann spare ich eine assignment operation.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1561715</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1561715</guid><dc:creator><![CDATA[netrobot]]></dc:creator><pubDate>Sat, 09 Aug 2008 00:13:18 GMT</pubDate></item><item><title><![CDATA[Reply to wofür ist initialierungslist gut on Sat, 09 Aug 2008 07:41:09 GMT]]></title><description><![CDATA[<p>neind as war im übertragenden sinne gemeint</p>
<p>was der compiler draus macht weis ich nicht</p>
<p>aber ich sagte man kann das mit zeigern und dem dynamischen kram vergleichen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1561737</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1561737</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Sat, 09 Aug 2008 07:41:09 GMT</pubDate></item></channel></rss>