<?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[C++ Konstruktoren Definition]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich arbeite mich gerade in C++ ein und dabei bin ich in einem Beispiel auf folgendes Problem gestossen. Leider ist es dort nicht näher erklärt und vielleicht kann mir einer von Euch dabei weiterhelfen.</p>
<p>Es gibt anscheinend Kontruktoren die wie folgt aussehen:</p>
<p>Buch::Buch() : myPtr(Heft::getInstance())<br />
{<br />
....<br />
}</p>
<p>Ich denke hier wird der Pointer myPtr initialisiert. Ist das richitg? Bringt das irgendwelche Vorteile die Initialisierung hier durchzuführen anstatt Block danach?</p>
<p>lg,</p>
<p>stefan</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/197663/c-konstruktoren-definition</link><generator>RSS for Node</generator><lastBuildDate>Thu, 01 Oct 2026 08:42:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/197663.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 13 Nov 2007 11:30:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++ Konstruktoren Definition on Tue, 13 Nov 2007 11:30:33 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich arbeite mich gerade in C++ ein und dabei bin ich in einem Beispiel auf folgendes Problem gestossen. Leider ist es dort nicht näher erklärt und vielleicht kann mir einer von Euch dabei weiterhelfen.</p>
<p>Es gibt anscheinend Kontruktoren die wie folgt aussehen:</p>
<p>Buch::Buch() : myPtr(Heft::getInstance())<br />
{<br />
....<br />
}</p>
<p>Ich denke hier wird der Pointer myPtr initialisiert. Ist das richitg? Bringt das irgendwelche Vorteile die Initialisierung hier durchzuführen anstatt Block danach?</p>
<p>lg,</p>
<p>stefan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1402407</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1402407</guid><dc:creator><![CDATA[jopperl]]></dc:creator><pubDate>Tue, 13 Nov 2007 11:30:33 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Konstruktoren Definition on Tue, 13 Nov 2007 11:44:10 GMT]]></title><description><![CDATA[<p>jopperl schrieb:</p>
<blockquote>
<p>...</p>
<p>Es gibt anscheinend Kontruktoren die wie folgt aussehen:</p>
<p>Buch::Buch() : myPtr(Heft::getInstance())<br />
{<br />
....<br />
}</p>
<p>Ich denke hier wird der Pointer myPtr initialisiert. Ist das richitg? Bringt das irgendwelche Vorteile die Initialisierung hier durchzuführen anstatt Block danach?</p>
</blockquote>
<p>Das ist eine sogenannte Initialisierungsliste (mit deiner Annahme liegst du richtig). Der Unterschied zwischen Initialisierungsliste und Konstruktorrumpf ist folgendes:</p>
<p>Im Konstruktorrumpf ist die Initialisierung schon gelaufen, es handelt sich um eine Zuweisung. Daraus folgt:</p>
<p>Wenn du einer Membervariable im Konstruktor ein Wert zuweist, ist vorher aber schon der Standardkonstruktor aufgerufen wurden. Dies kann bei größeren Datentypen ungewollt sein (Man möchte ja eigentlich nur einmal Initialisieren). Zudem kannst du eine Konstante z.B. nur initialisieren, aber nicht mehr nach der Initialisierung etwas zuweisen.</p>
<p>Es ist eigentlich immer empfehlenswert alle Initialisierungen in der Initialisierungsliste zu machen. Dabei sollte man die Werte in der Reihenfolge auflisten, in der sie deklariert wurden sind (Man darf auf noch nicht initialisierte Werte nicht zugreifen und die Initialisierung erfolgt immer in der Reihenfolge ihrer Deklaration, unabhängig in welcher Reihenfolge sie in der Initialisierungsliste stehen).</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1402420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1402420</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Tue, 13 Nov 2007 11:44:10 GMT</pubDate></item></channel></rss>