<?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[speicherwerte von member-variablen]]></title><description><![CDATA[<p>weiss jemand ob man generell davon ausgehen kann, dass member-variablen einer klasse, sofern sie nicht explizit durch den konstruktor genullt wurden, immer genullt sind beim anlegen einer instanz (unterschiede stack/heap)???</p>
<p>gruss</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/211347/speicherwerte-von-member-variablen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 04 Apr 2026 16:07:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/211347.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 22 Apr 2008 10:31:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to speicherwerte von member-variablen on Tue, 22 Apr 2008 10:31:03 GMT]]></title><description><![CDATA[<p>weiss jemand ob man generell davon ausgehen kann, dass member-variablen einer klasse, sofern sie nicht explizit durch den konstruktor genullt wurden, immer genullt sind beim anlegen einer instanz (unterschiede stack/heap)???</p>
<p>gruss</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496095</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496095</guid><dc:creator><![CDATA[pepe75]]></dc:creator><pubDate>Tue, 22 Apr 2008 10:31:03 GMT</pubDate></item><item><title><![CDATA[Reply to speicherwerte von member-variablen on Tue, 22 Apr 2008 10:45:00 GMT]]></title><description><![CDATA[<p>Bestimmt nicht! Wie kommst du denn darauf? Hast du das mal ausprobiert? Da steht Müll drinnen, ich glaube Member oder Standard-Variable macht da keinen Unterschied.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496100</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496100</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Tue, 22 Apr 2008 10:45:00 GMT</pubDate></item><item><title><![CDATA[Reply to speicherwerte von member-variablen on Tue, 22 Apr 2008 10:50:28 GMT]]></title><description><![CDATA[<p>das war je gerade meine frage (vielleicht etwas komisch formuliert):</p>
<p>ich haette auch gedacht, dass es nicht so ist. ausprobieren kann man es. jedoch bleibt die frage ob es eine generelle sprach-spezifische festlegung ist, d.h. wenn ich es ausprobiere und die dinger sind genullt, dann ist das zufall oder haengt vom system ab auf dem ich es probiere (embedded system z.B.) !?!</p>
<p>Also sind member prinzipiell explizit im konstruktor zu nullen sofern es erwuenscht ist!?</p>
<p>gruss</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496102</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496102</guid><dc:creator><![CDATA[pepe75]]></dc:creator><pubDate>Tue, 22 Apr 2008 10:50:28 GMT</pubDate></item><item><title><![CDATA[Reply to speicherwerte von member-variablen on Tue, 22 Apr 2008 10:52:05 GMT]]></title><description><![CDATA[<p>In der Regel wird nur der Speicher reserviert bzw. belegt. Die Variablen beinhalten dann das was vorher an dem Speicherplatz war. Das hat den Nachteil das es etwas schwerer zu debuggen ist, da es vorkommen kann das der vorherige Inhalt durchaus Sinn macht in seiner Form aber indirekt zu Fehlern führt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496103</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496103</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Tue, 22 Apr 2008 10:52:05 GMT</pubDate></item><item><title><![CDATA[Reply to speicherwerte von member-variablen on Tue, 22 Apr 2008 10:53:55 GMT]]></title><description><![CDATA[<p>Nun ja, ich weiß, dass es mit meinem Compiler (VS2008) definitiv so ist. Da wird nix implizit genullt. Deine letzte Frage kann ich also mit Ja beantworten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496104</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496104</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Tue, 22 Apr 2008 10:53:55 GMT</pubDate></item><item><title><![CDATA[Reply to speicherwerte von member-variablen on Tue, 22 Apr 2008 11:34:51 GMT]]></title><description><![CDATA[<blockquote>
<p>weiss jemand ob man generell davon ausgehen kann, dass member-variablen einer klasse, sofern sie nicht explizit durch den konstruktor genullt wurden, immer genullt sind beim anlegen einer instanz</p>
</blockquote>
<p>Es kommt drauf an: Wenn sie in der Initialisierungsliste des Konstruktors nicht explizit genullt werden, aber trotzdem auftauchen (mit leeren Klammern), dann werden sie value-initialisiert. Value-Initialisierung bedeutet, dass die Variable mit einer in den Zieltyp konvertierten 0 initialisiert wird.</p>
<p>Globale PODs werden auch implizit genullt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496123</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 22 Apr 2008 11:34:51 GMT</pubDate></item><item><title><![CDATA[Reply to speicherwerte von member-variablen on Tue, 22 Apr 2008 11:41:58 GMT]]></title><description><![CDATA[<p>also das wird glaube ich unterschiedlich gehandhabt:</p>
<p>undefiniert:</p>
<pre><code>class A
{
public:
long x;
};

int main(int argc, char *argv[])
{
  A *pa = new A();
  A a;
  // beide male ist x undefiniert
}
</code></pre>
<p>sofern ich aber den standard-konstruktor ueberschreibe mit:</p>
<pre><code>class A
{
public:
A(){}
long x;
};
int main(int argc, char *argv[])
{
  A a;
  // x ist genullt !!
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1496129</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496129</guid><dc:creator><![CDATA[pepe75]]></dc:creator><pubDate>Tue, 22 Apr 2008 11:41:58 GMT</pubDate></item><item><title><![CDATA[Reply to speicherwerte von member-variablen on Tue, 22 Apr 2008 11:49:44 GMT]]></title><description><![CDATA[<p>Sobald du einen eigenen Konstruktor schreibst, wird x implizit genullt? Hmm, ich habe das eben an einer bestehenden Klasse getestet. Da stand während OnInitDialog (also nach Konstruktor-Aufruf) in einem int-Member nur Müll, trotz überschriebenem Konstruktor...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496132</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496132</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Tue, 22 Apr 2008 11:49:44 GMT</pubDate></item><item><title><![CDATA[Reply to speicherwerte von member-variablen on Tue, 22 Apr 2008 11:50:59 GMT]]></title><description><![CDATA[<p>Im ersten Fall wird A default-initialisiert. Das heisst (da A kein POD ist) für alle POD-Member von A, dass sie nicht initialisiert werden.</p>
<p>Im zweiten Fall wird A auch default-initialisiert, wobei der explizite Konstruktor x nicht initialisiert. Das hier sollte auch unbestimmt sein, x muss also nicht genullt sein. (Ist z.B. beim MSVC2005 auch nicht so)</p>
<p>Der dritte Fall fehlt hier: x wird im expliziten Konstruktor default-initialisiert. Dann wäre es auf jeden Fall genullt.</p>
<pre><code class="language-cpp">class A
{
public:
A() : x() {}
long x;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1496134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496134</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 22 Apr 2008 11:50:59 GMT</pubDate></item><item><title><![CDATA[Reply to speicherwerte von member-variablen on Tue, 22 Apr 2008 11:52:43 GMT]]></title><description><![CDATA[<p>Das im zweiten Fall &quot;genullt&quot; wird mag Zufall sein. Kann ja gut sein das der Speicherbereich der dort dem x zugetan wird vorher für andere Zwecke (Debug?) genutzt und mit 0 initialisiert wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496137</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496137</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Tue, 22 Apr 2008 11:52:43 GMT</pubDate></item><item><title><![CDATA[Reply to speicherwerte von member-variablen on Tue, 22 Apr 2008 11:59:12 GMT]]></title><description><![CDATA[<p>hmm keine ahnung.<br />
ich habe VS2003, da wird bei leerem ueberschriebenen default-konstruktor (ohne member-null-initialisierung) die member x zu 0.<br />
vielleicht fuegt der compiler ja bei nem leer ueberschriebenen konstr. das x() mit an!?<br />
trotzdem danke.<br />
gruss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496141</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496141</guid><dc:creator><![CDATA[pepe75]]></dc:creator><pubDate>Tue, 22 Apr 2008 11:59:12 GMT</pubDate></item><item><title><![CDATA[Reply to speicherwerte von member-variablen on Tue, 22 Apr 2008 12:07:01 GMT]]></title><description><![CDATA[<p>pepe75 schrieb:</p>
<blockquote>
<p>hmm keine ahnung.<br />
ich habe VS2003, da wird bei leerem ueberschriebenen default-konstruktor (ohne member-null-initialisierung) die member x zu 0.<br />
vielleicht fuegt der compiler ja bei nem leer ueberschriebenen konstr. das x() mit an!?<br />
trotzdem danke.<br />
gruss.</p>
</blockquote>
<p>Auch, wenn du als Release kompilierst? In der Debug-Version wird der Speicher ja noch irgendwie vorbereitet, vielleicht hängt's damit zusammen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1496146</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1496146</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Tue, 22 Apr 2008 12:07:01 GMT</pubDate></item></channel></rss>