<?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[Seg-Fault bei Konstruktor mit &amp;quot;new&amp;quot; (statt statisch) etc...]]></title><description><![CDATA[<p>Hallo Gemeinde,<br />
ich versuche hier gerade mir ein C++-Progrämmchen zusammen zu basteln.. Und das, wenns geht, ohne Seg-Fault..</p>
<p>Hier mal ein Beispiel:<br />
Ich habe 2 Klassen, die voneinander abhängen, aber auch zusammen in einer weiteren Klasse ihr Unwesen treiben..</p>
<pre><code>class A{
 B *b;
}

class B{
 A *a;
}

class C{
 A *aDyn;
 B *bDyn;

 C();
}
</code></pre>
<p>..HALT..<br />
.....Kennt das jemand: Man kommt mit einem Problem hierher, versucht es zusammenzufassen und verständlich auszuführen, wobei dann die Ursache offensichtlich wird??....<br />
Kurz gesagt: Hat sich erledigt <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="😉"
    /> - Naja fast..</p>
<p>Das war zwar nicht das eigentliche Problem, aber warum meckert der Kompilator eigentlich nicht, wenn ich auf Klassen-Vars zugreife, deren Klassen nur als Zeiger existieren (ohne init)??</p>
<p>Und noch eine kleine Frage: Wie nennt sich eigentlich der Teil im Konstruktor</p>
<pre><code>D::D() : var1(bla), var2(blö){}
</code></pre>
<p>nach dem &quot;:&quot; ??<br />
Und würde man dynamische Variablen (varEDyn) ähnlich initialisieren? Also zB.</p>
<pre><code>D::D() : varEDyn(new E(wasAuchImmer)){}
</code></pre>
<p>oder macht man das im Körper mit</p>
<pre><code>D::D(){ varEDyn = new E(wasAuchImmer); }
</code></pre>
<p>?</p>
<p>MfG<br />
Glühbirne457</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/332682/seg-fault-bei-konstruktor-mit-quot-new-quot-statt-statisch-etc</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Apr 2026 13:47:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/332682.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 16 May 2015 16:18:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Seg-Fault bei Konstruktor mit &amp;quot;new&amp;quot; (statt statisch) etc... on Sat, 16 May 2015 16:18:23 GMT]]></title><description><![CDATA[<p>Hallo Gemeinde,<br />
ich versuche hier gerade mir ein C++-Progrämmchen zusammen zu basteln.. Und das, wenns geht, ohne Seg-Fault..</p>
<p>Hier mal ein Beispiel:<br />
Ich habe 2 Klassen, die voneinander abhängen, aber auch zusammen in einer weiteren Klasse ihr Unwesen treiben..</p>
<pre><code>class A{
 B *b;
}

class B{
 A *a;
}

class C{
 A *aDyn;
 B *bDyn;

 C();
}
</code></pre>
<p>..HALT..<br />
.....Kennt das jemand: Man kommt mit einem Problem hierher, versucht es zusammenzufassen und verständlich auszuführen, wobei dann die Ursache offensichtlich wird??....<br />
Kurz gesagt: Hat sich erledigt <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="😉"
    /> - Naja fast..</p>
<p>Das war zwar nicht das eigentliche Problem, aber warum meckert der Kompilator eigentlich nicht, wenn ich auf Klassen-Vars zugreife, deren Klassen nur als Zeiger existieren (ohne init)??</p>
<p>Und noch eine kleine Frage: Wie nennt sich eigentlich der Teil im Konstruktor</p>
<pre><code>D::D() : var1(bla), var2(blö){}
</code></pre>
<p>nach dem &quot;:&quot; ??<br />
Und würde man dynamische Variablen (varEDyn) ähnlich initialisieren? Also zB.</p>
<pre><code>D::D() : varEDyn(new E(wasAuchImmer)){}
</code></pre>
<p>oder macht man das im Körper mit</p>
<pre><code>D::D(){ varEDyn = new E(wasAuchImmer); }
</code></pre>
<p>?</p>
<p>MfG<br />
Glühbirne457</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2453738</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2453738</guid><dc:creator><![CDATA[Glühbirne457]]></dc:creator><pubDate>Sat, 16 May 2015 16:18:23 GMT</pubDate></item><item><title><![CDATA[Reply to Seg-Fault bei Konstruktor mit &amp;quot;new&amp;quot; (statt statisch) etc... on Sat, 16 May 2015 16:23:24 GMT]]></title><description><![CDATA[<p>Das Ding nennt sich Initialisierungsliste und hat sogar einen eigenen Wikipedia-Artikel: <a href="http://de.wikipedia.org/wiki/Initialisierungsliste" rel="nofollow">http://de.wikipedia.org/wiki/Initialisierungsliste</a></p>
<p>Zu deiner 2. Frage: Ich würde es auch in der Initialisierungsliste machen, aber nicht mit rohen Pointern, sondern mit Smart-Pointern wie zum Beispiel der std::uniqe_ptr.</p>
<pre><code>// header file
#include &lt;memory&gt;
class C{
 std::unique_ptr&lt;A&gt; aDyn;
 std::unique_ptr&lt;B&gt; bDyn;

 C();
}

// source file
C::C()
    : aDyn(new A())
    , bDyn(new B())
{}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2453739</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2453739</guid><dc:creator><![CDATA[patrick246]]></dc:creator><pubDate>Sat, 16 May 2015 16:23:24 GMT</pubDate></item></channel></rss>