<?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[Frage zu Konstruktoren]]></title><description><![CDATA[<p>Moin,</p>
<p>ich muss aus einer Vorlage heraus ein Programm schreiben. In der Vorlage ist eine Klasse enthalten, welche die Systemvariablen ausliest und in einen Vector schreibt. In dem Konstruktor von der Klasse aus der Vorlage habe ich ein paar Probleme mit dessen Signatur:</p>
<pre><code>Path::Path() : vector&lt;string&gt; (){
</code></pre>
<p>Dabei ist mir schon klar, dass es sich hier um den Konstruktor das Klasse Path() handelt ;-), allerdings weiss ich nicht, was das mit :vector&lt;string&gt; () bedeutet und auf sich hat.</p>
<p>Gruss</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/255419/frage-zu-konstruktoren</link><generator>RSS for Node</generator><lastBuildDate>Sat, 12 Sep 2026 02:59:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/255419.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 30 Nov 2009 16:29:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu Konstruktoren on Mon, 30 Nov 2009 16:29:54 GMT]]></title><description><![CDATA[<p>Moin,</p>
<p>ich muss aus einer Vorlage heraus ein Programm schreiben. In der Vorlage ist eine Klasse enthalten, welche die Systemvariablen ausliest und in einen Vector schreibt. In dem Konstruktor von der Klasse aus der Vorlage habe ich ein paar Probleme mit dessen Signatur:</p>
<pre><code>Path::Path() : vector&lt;string&gt; (){
</code></pre>
<p>Dabei ist mir schon klar, dass es sich hier um den Konstruktor das Klasse Path() handelt ;-), allerdings weiss ich nicht, was das mit :vector&lt;string&gt; () bedeutet und auf sich hat.</p>
<p>Gruss</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1815481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1815481</guid><dc:creator><![CDATA[CaptainAmerika]]></dc:creator><pubDate>Mon, 30 Nov 2009 16:29:54 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Konstruktoren on Mon, 30 Nov 2009 16:39:58 GMT]]></title><description><![CDATA[<p>auf den : folgt die sog. Initialisierungsliste in der Basisklassen und Membervariablen initialisiert werden:</p>
<pre><code class="language-cpp">class A : public B
{
    A()
    : a(1), // a mit 1 initialisert
    B()     // konstruktor von B
    {}
    int a;
};
</code></pre>
<p>Wie es aussieht erbt dein Path von vector&lt;string&gt;, was ziemlich unschön ist.</p>
<pre><code class="language-cpp">class A : std::vector&lt;std::string&gt;
{
    A()
    :std::vector&lt;std::string&gt;() // Konstruktor von vector
    {}
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1815487</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1815487</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Mon, 30 Nov 2009 16:39:58 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Konstruktoren on Mon, 30 Nov 2009 17:16:20 GMT]]></title><description><![CDATA[<p>brotbernd schrieb:</p>
<blockquote>
<p>auf den : folgt die sog. Initialisierungsliste in der Basisklassen und Membervariablen initialisiert werden:</p>
<pre><code class="language-cpp">class A : public B
{
    A()
    : a(1), // a mit 1 initialisert
    B()     // konstruktor von B
    {}
    int a;
};
</code></pre>
</blockquote>
<p>Und damit hast du gleich ein schönes Beispiel geliefert wie mans nicht machen soll: Basisklassen werden vor den Membervariablen initialisiert, ganz egal in welcher Reihenfolge man sie in der Initialisierungsliste aufführt. Ebenso werden Membervariablen in der Reihenfolge ihrer Deklaration initialisiert - unabhängig von der Reihnefolge in der Initialisierungsliste.<br />
Man sollte daher in der Initialisierungsliste die einzelnen Initialisierungen so anordnen wie sie auch tatsächlich vom Compiler ausgeführt werden und nicht anders.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1815498</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1815498</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 30 Nov 2009 17:16:20 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Konstruktoren on Mon, 30 Nov 2009 17:55:43 GMT]]></title><description><![CDATA[<p>oh je, schande über mich, da war ich wohl zu eilig <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /><br />
Hätte man das Bsp. kompiliert hätte man ja aber auch (evtl. je nach Compiler) eine schöne Warnung bekommen, die wir ja alle beachten <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="😉"
    /><br />
Der Konstruktor ist übrigens auch private, was in diesem Beispiel auch nicht ganz praktisch ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1815512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1815512</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Mon, 30 Nov 2009 17:55:43 GMT</pubDate></item></channel></rss>