<?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[Struct mit Base beim Anlegen mit Initialisierungsliste?]]></title><description><![CDATA[<p>Hi!</p>
<p>Ist es wirklich nicht möglich, eine struct mit base beim Anlegen mit der Initialisierungsliste zu initialisieren?</p>
<pre><code class="language-cpp">struct Base
{
    int val;
};

struct Der : public Base
{
    int val2;
};

Der der = { 1, 2 }; // error C2552: non-aggregates cannot be initialized with initializer list
</code></pre>
<p>Warum ist das so?</p>
<p><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="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/252041/struct-mit-base-beim-anlegen-mit-initialisierungsliste</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 02:20:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/252041.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 13 Oct 2009 19:30:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Struct mit Base beim Anlegen mit Initialisierungsliste? on Tue, 13 Oct 2009 19:30:43 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Ist es wirklich nicht möglich, eine struct mit base beim Anlegen mit der Initialisierungsliste zu initialisieren?</p>
<pre><code class="language-cpp">struct Base
{
    int val;
};

struct Der : public Base
{
    int val2;
};

Der der = { 1, 2 }; // error C2552: non-aggregates cannot be initialized with initializer list
</code></pre>
<p>Warum ist das so?</p>
<p><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="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1792234</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1792234</guid><dc:creator><![CDATA[Initiat0r]]></dc:creator><pubDate>Tue, 13 Oct 2009 19:30:43 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit Base beim Anlegen mit Initialisierungsliste? on Tue, 13 Oct 2009 19:44:15 GMT]]></title><description><![CDATA[<p>Weil Der kein Aggregat ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1792237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1792237</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 13 Oct 2009 19:44:15 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit Base beim Anlegen mit Initialisierungsliste? on Tue, 13 Oct 2009 19:48:11 GMT]]></title><description><![CDATA[<p>Ja schon, aber was steckt dahinter?<br />
Wo ist das Problem für den Compiler, 'Der' als eine struct wie auch jede andere ohne base aufzufassen?<br />
Ich sehe das wieder mal als unnötige Restriktion...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1792238</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1792238</guid><dc:creator><![CDATA[Initiat0r]]></dc:creator><pubDate>Tue, 13 Oct 2009 19:48:11 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit Base beim Anlegen mit Initialisierungsliste? on Wed, 14 Oct 2009 06:58:56 GMT]]></title><description><![CDATA[<p>Solche Klassen sind nicht mehr C kompatibel und es sind eine menge Spezialfälle (virtuelle Vererbung/private Member) zu beachten). Nicht zuletzt existieren für die Initialiserung solcher Objekte Konstruktoren, hier eine Aggregatinitialisierung einzuführen würde die Sprache weiter verkomplizieren, weil sich das unmittelbar auf die Definition der Lebensdauer von Objekten auswirkt.<br />
Entweder wurde ein solches Feature nie hinreichend nachdrücklich gefordert oder aber aus wichtigen Gründen abgelehnt. Persönlich würde ich so einen Vorschlag auch ablehnen, solange der Nutzen nicht demonstriert wird (ein bisschen nützlich reicht nicht aus).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1792345</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1792345</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 14 Oct 2009 06:58:56 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit Base beim Anlegen mit Initialisierungsliste? on Wed, 14 Oct 2009 13:28:37 GMT]]></title><description><![CDATA[<p>Na gut, dann nicht.<br />
Danke und MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1792564</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1792564</guid><dc:creator><![CDATA[Initiat0r]]></dc:creator><pubDate>Wed, 14 Oct 2009 13:28:37 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit Base beim Anlegen mit Initialisierungsliste? on Wed, 14 Oct 2009 17:20:11 GMT]]></title><description><![CDATA[<p>Initiat0r schrieb:</p>
<blockquote>
<p>Na gut, dann nicht.<br />
Danke und MfG</p>
</blockquote>
<p>Spricht etwas gegen Konstruktoren? Die Aggregat-Initialisierungsliste für PODs ist in C++ ohnehin nicht allzu verbreitet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1792647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1792647</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 14 Oct 2009 17:20:11 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit Base beim Anlegen mit Initialisierungsliste? on Wed, 14 Oct 2009 20:11:22 GMT]]></title><description><![CDATA[<p>Es ist halt einfacher.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1792712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1792712</guid><dc:creator><![CDATA[Initiat0r]]></dc:creator><pubDate>Wed, 14 Oct 2009 20:11:22 GMT</pubDate></item><item><title><![CDATA[Reply to Struct mit Base beim Anlegen mit Initialisierungsliste? on Wed, 14 Oct 2009 20:21:20 GMT]]></title><description><![CDATA[<p>Im ersten Moment bestimmt, wenn man nur ein wenig Beispielcode schreibt. Aber wo braucht man das denn wirklich? - Wohl eher selten, dass man die benötigten Daten (bis auf Dummy Werte) im Code so drin stehen hat.</p>
<p>Und wenn es dich fest stört, dann kannst du ja immer noch eine Funktion definieren, die dir ein solches struct übernimmt und dir dann das konstruierte Objekt zurückgibt. (in der Funktion machst du dann genau das, was du sonst halt machen müsstest). So hättest du auch deine bequeme Initialisierung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1792715</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1792715</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 14 Oct 2009 20:21:20 GMT</pubDate></item></channel></rss>