<?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[Initialisierungsliste]]></title><description><![CDATA[<p>Hallo zusammen<br />
Mein Problem ist folgender Art. Ich begreiffe nicht ganz wieso Der Konstruktor StudentId zweimal erstellt also das Objekt id. Es steht einmal bei protected und einmal wird es vom Studentkonstruktor aufgerufen ist das korrekt?<br />
Und wieso man dann eine Initialisierungsliste benötigt ist mir auch nicht ganz klar xD</p>
<pre><code class="language-cpp">int nextStudentId = 1000; 
class StudentId
{
  publi
    StudentId()
    {
        value = nextStudentId++;
        cout &lt;&lt; &quot;Naechste Studenten-ID &quot; &lt;&lt; value &lt;&lt; &quot; zuweisen&quot; 
             &lt;&lt; endl;
    }
    StudentId(int id)
    {
        value = id;
        cout &lt;&lt; &quot;Studenten-ID &quot; &lt;&lt; value &lt;&lt; &quot; zuweisen&quot; 
             &lt;&lt; endl;
    }
    ~StudentId(){cout &lt;&lt; &quot;zerstoere &quot; &lt;&lt; value &lt;&lt; endl;}
  protected:
    int value;
};

class Student
{
  public:
    Student(const char *pName, int ssId)
    {
        cout &lt;&lt; &quot;Erzeuge Student &quot; &lt;&lt; pName &lt;&lt; endl;
        name = pName;
        StudentId id(ssId);    
    }
  protected:
    string    name;
    StudentId id;
};

int main(int argcs, char* pArgs[])
{
    Student s(&quot;Chester&quot;, 1234);
...
</code></pre>
<p>Danke für Eure Hilfe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/282129/initialisierungsliste</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 09:37:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/282129.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 14 Feb 2011 15:05:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Initialisierungsliste on Mon, 14 Feb 2011 15:05:55 GMT]]></title><description><![CDATA[<p>Hallo zusammen<br />
Mein Problem ist folgender Art. Ich begreiffe nicht ganz wieso Der Konstruktor StudentId zweimal erstellt also das Objekt id. Es steht einmal bei protected und einmal wird es vom Studentkonstruktor aufgerufen ist das korrekt?<br />
Und wieso man dann eine Initialisierungsliste benötigt ist mir auch nicht ganz klar xD</p>
<pre><code class="language-cpp">int nextStudentId = 1000; 
class StudentId
{
  publi
    StudentId()
    {
        value = nextStudentId++;
        cout &lt;&lt; &quot;Naechste Studenten-ID &quot; &lt;&lt; value &lt;&lt; &quot; zuweisen&quot; 
             &lt;&lt; endl;
    }
    StudentId(int id)
    {
        value = id;
        cout &lt;&lt; &quot;Studenten-ID &quot; &lt;&lt; value &lt;&lt; &quot; zuweisen&quot; 
             &lt;&lt; endl;
    }
    ~StudentId(){cout &lt;&lt; &quot;zerstoere &quot; &lt;&lt; value &lt;&lt; endl;}
  protected:
    int value;
};

class Student
{
  public:
    Student(const char *pName, int ssId)
    {
        cout &lt;&lt; &quot;Erzeuge Student &quot; &lt;&lt; pName &lt;&lt; endl;
        name = pName;
        StudentId id(ssId);    
    }
  protected:
    string    name;
    StudentId id;
};

int main(int argcs, char* pArgs[])
{
    Student s(&quot;Chester&quot;, 1234);
...
</code></pre>
<p>Danke für Eure Hilfe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2020838</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2020838</guid><dc:creator><![CDATA[airglide]]></dc:creator><pubDate>Mon, 14 Feb 2011 15:05:55 GMT</pubDate></item><item><title><![CDATA[Reply to Initialisierungsliste on Mon, 14 Feb 2011 15:14:27 GMT]]></title><description><![CDATA[<p>Der Konstruktor von StudentId wird einmal aufgerufen für das proteted-Memberobjekt von Student. Da Student keine Initialisierungsliste hat, wird der Standardkonstruktor genommen. Weiterhin wird im Konstruktor von Student ein weiteres <strong>lokales</strong> StudentId-Objekt namens id erstellt, mit dem Argument ssId. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /> Dieses Objekt hat rein gar nichts mit dem Memberobjekt id zu tun <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /> und wird bei Verlassen des Student-Konstruktors sofort wieder zerstört.</p>
<p>Und jetzt verstehst du hoffentlich auch den Sinn von Initialisierungslisten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2020846</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2020846</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 14 Feb 2011 15:14:27 GMT</pubDate></item><item><title><![CDATA[Reply to Initialisierungsliste on Mon, 14 Feb 2011 15:21:49 GMT]]></title><description><![CDATA[<p>k ja alles kapiert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> und wieso wird das objekt id das mit dem standardkonstruktor von Stundent erstellt wurde lokal abgespeichert? weil das andere schon den Namen belegt hat ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2020851</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2020851</guid><dc:creator><![CDATA[airglide]]></dc:creator><pubDate>Mon, 14 Feb 2011 15:21:49 GMT</pubDate></item><item><title><![CDATA[Reply to Initialisierungsliste on Mon, 14 Feb 2011 15:34:02 GMT]]></title><description><![CDATA[<p>airglide schrieb:</p>
<blockquote>
<p>k ja alles kapiert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> und wieso wird das objekt id das mit dem standardkonstruktor von Stundent erstellt wurde lokal abgespeichert? weil das andere schon den Namen belegt hat ?</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> Weil du es lokal erstellst:</p>
<pre><code class="language-cpp">class Student
{
  public:
    Student(const char *pName, int ssId)
    {
       int foo;   // Lokaler int namens &quot;foo&quot;
       name = &quot;Mustermann&quot;;  // Memberobjekt &quot;name&quot; wird Wert zugewiesen
       double name; // Lokaler double namens &quot;name&quot;. Überdeckt Student::name.
       name = 3.13; // Lokalem &quot;name&quot; wird Wert zugewiesen
       Student::name=&quot;Normalverbraucher&quot;; // Memberobjekt wird Wert zugewiesen
       StudentId id(ssId); // Lokale StudentId id. Überdeckt Student::id.
    }
  protected:
    string    name;
    StudentId id;
};
</code></pre>
<p>Du kannst in einem Gültigkeitsbereich immer Objekte mit Namen aus höheren Gültigkeitsbereichen erstellen, die überdecken dann die höheren Namen.</p>
<p>edit: Und außerdem solltest du immer mit höchsten Warnstufen compilieren, dann hättest du eine Warnung von wegen unbenutzter variablen bekommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2020859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2020859</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 14 Feb 2011 15:34:02 GMT</pubDate></item><item><title><![CDATA[Reply to Initialisierungsliste on Mon, 14 Feb 2011 15:39:52 GMT]]></title><description><![CDATA[<p>ah k <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> alles klar danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2020864</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2020864</guid><dc:creator><![CDATA[airglide]]></dc:creator><pubDate>Mon, 14 Feb 2011 15:39:52 GMT</pubDate></item></channel></rss>