<?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[Warnung vor Uninitialized member variables in gcc?]]></title><description><![CDATA[<p>Hallo,<br />
ich verwende gcc mit -Wall und -Wextra, aber leider lässt er mir folgenden Code durchgehen. Kann ich ihn irgendwie dazu bringen mich davor zu warnen? bla ist nicht initialisiert, und kann es auch garnicht werden. Gerade bei großen Klassen bringt mich das häufig in Probleme <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>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class cl
{
    public:
        cl();
        void print();
    private:
        int bla;
};

cl::cl()
{
}

void cl::print()
{
    std::cout &lt;&lt; &quot;Bla: &quot; &lt;&lt;  bla &lt;&lt; std::endl;   
}

int main()
{
    cl t;
    t.print();
    return 1;
}
</code></pre>
<p>Grüße,<br />
Thomas</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/234050/warnung-vor-uninitialized-member-variables-in-gcc</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 14:24:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/234050.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 12 Feb 2009 13:15:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Warnung vor Uninitialized member variables in gcc? on Thu, 12 Feb 2009 13:15:43 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich verwende gcc mit -Wall und -Wextra, aber leider lässt er mir folgenden Code durchgehen. Kann ich ihn irgendwie dazu bringen mich davor zu warnen? bla ist nicht initialisiert, und kann es auch garnicht werden. Gerade bei großen Klassen bringt mich das häufig in Probleme <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>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class cl
{
    public:
        cl();
        void print();
    private:
        int bla;
};

cl::cl()
{
}

void cl::print()
{
    std::cout &lt;&lt; &quot;Bla: &quot; &lt;&lt;  bla &lt;&lt; std::endl;   
}

int main()
{
    cl t;
    t.print();
    return 1;
}
</code></pre>
<p>Grüße,<br />
Thomas</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1662480</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1662480</guid><dc:creator><![CDATA[elfstone]]></dc:creator><pubDate>Thu, 12 Feb 2009 13:15:43 GMT</pubDate></item><item><title><![CDATA[Reply to Warnung vor Uninitialized member variables in gcc? on Thu, 12 Feb 2009 13:42:55 GMT]]></title><description><![CDATA[<p>Warum soll das nicht möglich sein?</p>
<pre><code class="language-cpp">class cl
{
    public:
        cl();
        void print();
    private:
        int bla;
};

cl::cl() : bla(0) // oder einen anderen Wert, anstatt Null.
{
}
</code></pre>
<p>Der Compiler brint meistens schon sinnvolle Warnungen. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1662504</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1662504</guid><dc:creator><![CDATA[Bulli]]></dc:creator><pubDate>Thu, 12 Feb 2009 13:42:55 GMT</pubDate></item><item><title><![CDATA[Reply to Warnung vor Uninitialized member variables in gcc? on Thu, 12 Feb 2009 14:02:34 GMT]]></title><description><![CDATA[<p>elfstone schrieb:</p>
<blockquote>
<p>bla ist nicht initialisiert, und kann es auch garnicht werden.</p>
</blockquote>
<p>Bla WIRD aber initialisiert, egal was du machst. Wenn du garnichts angibst, wirds vom Compiler implizit default-initialisiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1662514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1662514</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 12 Feb 2009 14:02:34 GMT</pubDate></item><item><title><![CDATA[Reply to Warnung vor Uninitialized member variables in gcc? on Thu, 12 Feb 2009 13:54:39 GMT]]></title><description><![CDATA[<p>elfstone schrieb:</p>
<blockquote>
<p>...</p>
</blockquote>
<p>Ich bin da auch schon drüber gestolpert. Wenn man<br />
<code>g++ -Wall -Wextra -O3 source.cpp</code> aufruft, geht es ulkigerweise. Für <code>-O{0,1,2}</code> geht es nicht. Nur für <code>-O3</code> .<br />
Ich habe keinen Schimmer, woran das liegt. Ich schätze mal, dass es ein Bug ist, denn eine uninitialisiert benutzte Variable sollte unabhängig vom Optimierungsgrad eine Warnung produzieren.<br />
Die gcc-Version ist 4.2.4</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1662516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1662516</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Thu, 12 Feb 2009 13:54:39 GMT</pubDate></item><item><title><![CDATA[Reply to Warnung vor Uninitialized member variables in gcc? on Thu, 12 Feb 2009 15:41:12 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>elfstone schrieb:</p>
<blockquote>
<p>bla ist nicht initialisiert, und kann es auch garnicht werden.</p>
</blockquote>
<p>Bla WIRD aber initialisiert, egal was du machst. Wenn du garnichts angibst, wirds vom Compiler implizit default-initialisiert.</p>
</blockquote>
<p>Das stimmt leider nicht, denn:</p>
<p>ISO/IEC 14882:2003 8.5 §9 schrieb:</p>
<blockquote>
<p>If no initializer is specified for an object, and the object is of (possibly cv-qualified) non-POD class type (or<br />
array thereof), the object shall be default-initialized; if the object is of const-qualified type, the underlying<br />
class type shall have a user-declared default constructor. Otherwise, if no initializer is specified for a non-<br />
static object, the object and its subobjects, if any, have an indeterminate initial value<br />
90)<br />
; if the object or any<br />
of its subobjects are of const-qualified type, the program is ill-formed</p>
</blockquote>
<p>Der Wert für nicht initialisierte POD-Typen darf also beliebig sein, wenn er nicht explizit initialisiert wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1662525</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1662525</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Thu, 12 Feb 2009 15:41:12 GMT</pubDate></item><item><title><![CDATA[Reply to Warnung vor Uninitialized member variables in gcc? on Thu, 12 Feb 2009 14:08:44 GMT]]></title><description><![CDATA[<p>Tatsächlich, mit -O3 kriege ich die Warnung auch.. das hilft zumindest schonmal, danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1662527</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1662527</guid><dc:creator><![CDATA[elfstone]]></dc:creator><pubDate>Thu, 12 Feb 2009 14:08:44 GMT</pubDate></item><item><title><![CDATA[Reply to Warnung vor Uninitialized member variables in gcc? on Thu, 12 Feb 2009 14:10:03 GMT]]></title><description><![CDATA[<p>Mit Warnoption -Weffc++ bringt g++ folgende Meldung:</p>
<pre><code>main.cpp: In constructor ‘cl::cl()’:
main.cpp:12: warning: ‘cl::bla’ should be initialized in the member initialization list
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1662531</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1662531</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Thu, 12 Feb 2009 14:10:03 GMT</pubDate></item></channel></rss>