<?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[Fehler abfangen in Initialisierungsliste unmöglich]]></title><description><![CDATA[<p>Hallo, ich lerne gerade Klassen mit C++ zu benutzen. Dabei habe ich gelernt, dass man immer eine initialisierungsliste für Konstruktoren benutzen soll.</p>
<pre><code class="language-cpp">class foo
{
    int bar;

   public:
    foo(int a) : bar(a) {}
};
</code></pre>
<p>Doch was ist, wenn man bei a=0 bar auf 1 setzen möchte?</p>
<pre><code class="language-cpp">foo(int a) { if(a)bar=a; else bar=1; }
</code></pre>
<p>Aber in dem Falle hat man ja keine Initialisierungsliste mehr. Ist das schlimm? Welche Auswirkungen könnte das haben? Wie umgeht man dieses Problem?</p>
<p>mfg<br />
Hulby</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/246407/fehler-abfangen-in-initialisierungsliste-unmöglich</link><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 03:31:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/246407.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 27 Jul 2009 21:28:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fehler abfangen in Initialisierungsliste unmöglich on Mon, 27 Jul 2009 21:28:23 GMT]]></title><description><![CDATA[<p>Hallo, ich lerne gerade Klassen mit C++ zu benutzen. Dabei habe ich gelernt, dass man immer eine initialisierungsliste für Konstruktoren benutzen soll.</p>
<pre><code class="language-cpp">class foo
{
    int bar;

   public:
    foo(int a) : bar(a) {}
};
</code></pre>
<p>Doch was ist, wenn man bei a=0 bar auf 1 setzen möchte?</p>
<pre><code class="language-cpp">foo(int a) { if(a)bar=a; else bar=1; }
</code></pre>
<p>Aber in dem Falle hat man ja keine Initialisierungsliste mehr. Ist das schlimm? Welche Auswirkungen könnte das haben? Wie umgeht man dieses Problem?</p>
<p>mfg<br />
Hulby</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1750584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1750584</guid><dc:creator><![CDATA[Hulby]]></dc:creator><pubDate>Mon, 27 Jul 2009 21:28:23 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler abfangen in Initialisierungsliste unmöglich on Mon, 27 Jul 2009 21:31:35 GMT]]></title><description><![CDATA[<p>zur not, wenns wirklich in der initliste sein soll:</p>
<pre><code class="language-cpp">class foo
{
  int bar;
public:
  foo(int a) : bar(a==0 ? 1 : a) {}
};
</code></pre>
<p>Sonst:</p>
<pre><code class="language-cpp">foo(int a) : bar(a) { if (a==0) bar = 1;}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1750587</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1750587</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 27 Jul 2009 21:31:35 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler abfangen in Initialisierungsliste unmöglich on Mon, 27 Jul 2009 21:32:50 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class foo
{
    int bar;
   static int f(int x){if(x) return x; else return 1;}
   public:
    foo(int a) : bar(f(a)) {}
};
</code></pre>
<p>Nicht hübsch, aber meistens besser als ?:<br />
Vielleicht ist !a eine seltene Ausnahme, die man gerne nachher erst bereinigen darf. Konsistent muß das Objekt erst nach dem Konstruktor-Aufruf sein.</p>
<pre><code class="language-cpp">class foo
{
    int bar;
   public:
    foo(int a) : bar(a) {if(!bar) bar=1;}
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1750588</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1750588</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 27 Jul 2009 21:32:50 GMT</pubDate></item></channel></rss>