<?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[Welche Ausgabe erwartet ihr ?]]></title><description><![CDATA[<pre><code>#include &lt;iostream&gt;

struct A {
  A() { std::cout &lt;&lt; &quot;A&quot;; }
};
struct B {
  B() { std::cout &lt;&lt; &quot;B&quot;; }
};

class C {
public:
  C() : a(), b() {} // hier seh ich den Sinn nicht 

private:
  B b;
  A a;
};

int main()
{
    C();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/327726/welche-ausgabe-erwartet-ihr</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Jul 2026 10:22:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/327726.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 31 Aug 2014 20:14:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Welche Ausgabe erwartet ihr ? on Sun, 31 Aug 2014 20:16:02 GMT]]></title><description><![CDATA[<pre><code>#include &lt;iostream&gt;

struct A {
  A() { std::cout &lt;&lt; &quot;A&quot;; }
};
struct B {
  B() { std::cout &lt;&lt; &quot;B&quot;; }
};

class C {
public:
  C() : a(), b() {} // hier seh ich den Sinn nicht 

private:
  B b;
  A a;
};

int main()
{
    C();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2415583</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2415583</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Sun, 31 Aug 2014 20:16:02 GMT</pubDate></item><item><title><![CDATA[Reply to Welche Ausgabe erwartet ihr ? on Sun, 31 Aug 2014 20:18:39 GMT]]></title><description><![CDATA[<p>BA -- die Member werden in Deklarationsreihenfolge initialisiert, egal was in der Initialisiererliste steht. Normalerweise solltest du eine Compilerwarnung bekommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2415586</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2415586</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Sun, 31 Aug 2014 20:18:39 GMT</pubDate></item><item><title><![CDATA[Reply to Welche Ausgabe erwartet ihr ? on Sun, 31 Aug 2014 20:44:55 GMT]]></title><description><![CDATA[<p>manchmal versteh ich die Sprache C wirklich nicht. Heisst das etwa der Compiler schaut sich erst die Deklarationen an und geht dann in die Initalisierungsliste ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2415587</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2415587</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Sun, 31 Aug 2014 20:44:55 GMT</pubDate></item><item><title><![CDATA[Reply to Welche Ausgabe erwartet ihr ? on Sun, 31 Aug 2014 20:54:53 GMT]]></title><description><![CDATA[<p>Nein, bei Klassen:</p>
<pre><code>class Foo
{
    int i;
    A a;
public:
    bar();
};
</code></pre>
<p>ist das eine Definition. Nur die Methoden werden &quot;nur&quot; deklariert</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2415588</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2415588</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Sun, 31 Aug 2014 20:54:53 GMT</pubDate></item><item><title><![CDATA[Reply to Welche Ausgabe erwartet ihr ? on Sun, 31 Aug 2014 21:04:11 GMT]]></title><description><![CDATA[<p>blurry333 schrieb:</p>
<blockquote>
<p>manchmal versteh ich die Sprache C**++** wirklich nicht. Heisst das etwa der Compiler schaut sich erst die <s>Deklarationen</s> Definition an und geht dann in die Initalisierungsliste ?</p>
</blockquote>
<p>Ja.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2415589</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2415589</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Sun, 31 Aug 2014 21:04:11 GMT</pubDate></item><item><title><![CDATA[Reply to Welche Ausgabe erwartet ihr ? on Sun, 31 Aug 2014 21:10:04 GMT]]></title><description><![CDATA[<p>blurry333 schrieb:</p>
<blockquote>
<p>manchmal versteh ich die Sprache C wirklich nicht.</p>
</blockquote>
<p>Der Grund liegt darin, dass der Destruktor die Member in der genau umgekehrten Reihenfolge zerstören sollte in der sie konstruiert wurden. Wenn jeder Konstruktor in seiner Initialisiererliste eine andere Reihenfolge hätte, müsste man zusätzlich die Reihenfolge speichern. Da das anscheinend niemand so haben will, hat man festgelegt, dass es eine eindeutige Reihenfolge geben muss und wie sie sich ergibt.<br />
Die Sprache heißt übrigens C++.</p>
<blockquote>
<p>Heisst das etwa der Compiler schaut sich erst die Deklarationen an und geht dann in die Initalisierungsliste ?</p>
</blockquote>
<p>Du und deine superschlauen Fragen immer. Der Compiler muss doch wissen, welche Member es überhaupt gibt, bevor er irgendwas sinnvolles mit der Initialisierungsliste anfangen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2415591</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2415591</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Sun, 31 Aug 2014 21:10:04 GMT</pubDate></item></channel></rss>