<?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[Frage zu Initialisierungsliste]]></title><description><![CDATA[<p>Wie kann ich alle Elemente eines struct initialisieren (auf 0 setzen), wenn diese stuct Elementeiner Klasse ist. Geht das irgendwie per initialisierungsliste?</p>
<pre><code>typedef struct Tiere
{
	int Hunde;
	int Schweine;
	int Kühe;
}

class Zoo
{
public:
	Zoo() : meineTiere(0) {}  //&lt;----so gehts ja leider nicht

        Tiere meine_Tiere;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/198185/frage-zu-initialisierungsliste</link><generator>RSS for Node</generator><lastBuildDate>Thu, 01 Oct 2026 20:28:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/198185.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 19 Nov 2007 12:40:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu Initialisierungsliste on Mon, 19 Nov 2007 12:40:35 GMT]]></title><description><![CDATA[<p>Wie kann ich alle Elemente eines struct initialisieren (auf 0 setzen), wenn diese stuct Elementeiner Klasse ist. Geht das irgendwie per initialisierungsliste?</p>
<pre><code>typedef struct Tiere
{
	int Hunde;
	int Schweine;
	int Kühe;
}

class Zoo
{
public:
	Zoo() : meineTiere(0) {}  //&lt;----so gehts ja leider nicht

        Tiere meine_Tiere;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1405847</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1405847</guid><dc:creator><![CDATA[JD]]></dc:creator><pubDate>Mon, 19 Nov 2007 12:40:35 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Initialisierungsliste on Mon, 19 Nov 2007 12:44:23 GMT]]></title><description><![CDATA[<p>Ja ok man könnte natürlich jedes einzelne Element der struct im Konstruktor auf 0 setzen, nur obs halt auch in der Initliste geht?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1405848</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1405848</guid><dc:creator><![CDATA[JDHawk]]></dc:creator><pubDate>Mon, 19 Nov 2007 12:44:23 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Initialisierungsliste on Mon, 19 Nov 2007 12:45:03 GMT]]></title><description><![CDATA[<p>Du kannst der struct auch einen Default-Ctor geben. Aber ansonsten sollte <code>Zoo() : meineTiere() {...}</code> eigentlich dafür ausreichen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1405849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1405849</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 19 Nov 2007 12:45:03 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Initialisierungsliste on Mon, 19 Nov 2007 12:47:32 GMT]]></title><description><![CDATA[<p>Bei hinreichend neuem Compiler reicht letzteres definitiv aus <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>Erläuterung: Tiere ist ein POD, wird daher standardmäßig wie schon festgestellt garnicht initialisiert. Wenn man eine solche Struktur aber default-initialisiert (also mit leeren Klammern), werden alle Mitglieder rekursiv auch default-initialisiert. Und das bedeutet für alle integralen Typen, dass sie eine in den Zieltyp konvertierte 0 als Wert erhalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1405850</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1405850</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 19 Nov 2007 12:47:32 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Initialisierungsliste on Mon, 19 Nov 2007 13:00:06 GMT]]></title><description><![CDATA[<p>Tatsache. Danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /></p>
<p>gibts diesen default Konstruktor für structs auch schon in C? oder nur wenn man mit C++ Compiler übersetzt?</p>
<p>Denn in meinem klugen 1000 seitigen C Buch steht nüscht von Konstruktoren bei structs <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/1405863</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1405863</guid><dc:creator><![CDATA[JDHawk]]></dc:creator><pubDate>Mon, 19 Nov 2007 13:00:06 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Initialisierungsliste on Mon, 19 Nov 2007 13:02:58 GMT]]></title><description><![CDATA[<p>In C gibt es keine Konstruktoren. Da kann man Objekte auch nicht mit Klammern initialisieren. Aber einen Trick gibt's selbst da:</p>
<pre><code class="language-cpp">Tiere meineTiere = { 0 };
</code></pre>
<p>Bei dieser Initialisierung erhalten alle <strong>nicht aufgeführten</strong> Elemente auch einen Wert von 0. Leider darf man meines Wissens in C keine leeren Initialisiererklammern angeben, so dass - damit das funktioniert - das erste Strukturelement selbst keine Struktur sein darf.</p>
<p>EDIT:<br />
Siehe CStoll, die Syntaxen für die Initialisierungen sind nicht mit den Begriffen zu vermischen - Default-Initialisierungen an sich gibt es auch in C, aber man kann sie nicht in Fällen erzwingen wo sie nicht vorgesehen ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1405866</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1405866</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 19 Nov 2007 13:02:58 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Initialisierungsliste on Mon, 19 Nov 2007 13:01:31 GMT]]></title><description><![CDATA[<p>Diese Default-Initialisierung gab's auch schon für C - dort wurde sie allerding nur für globale und statische Variablen angewendet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1405867</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1405867</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 19 Nov 2007 13:01:31 GMT</pubDate></item></channel></rss>