<?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[Elementinitialisierer und Default-Werte ?]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe eine Klasse A. In dieser gibt es die Methode setParms(), welche ich zum setzen einzelner Parameter nutze. setParms() besitzt ebenso Default Werte. Daher rufe ich diese Methode zur Initialisierung, innerhalb des Default-Konstruktors auf. Mein Problem ist der zweite Parameter von setParms(). Dieser stellt ein &quot;Punktobjekt&quot; dar und besteht aus zwei int-Parametern.</p>
<p>Gibt es eine Möglichkeit dieses Problem zu lösen ohne die Methode setParms() zu überschreiben?</p>
<p>Die Option vorab ein &quot;Punktobjekt&quot; zu erzeugen, dieses mit z.B. x=0 und y=0 zu initialisieren und an die Methode setParms() zu übergeben kann ich nicht nutzen.</p>
<p>Wie würdet ihr dieses Problem lösen?</p>
<pre><code>class A
{
   public:
      A()
       {
           this-&gt;setParms();
       }
      void setParms(const int&amp; refZahl = 0,const CPunkt&amp; refPt /* = ??? */): Zahl(refZahl),
                                                                Punkt(refPt)
      {

      }

   private:
      int Zahl;
   CPunkt Punkt;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/247485/elementinitialisierer-und-default-werte</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 12:46:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/247485.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 11 Aug 2009 17:35:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Elementinitialisierer und Default-Werte ? on Tue, 11 Aug 2009 17:35:36 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe eine Klasse A. In dieser gibt es die Methode setParms(), welche ich zum setzen einzelner Parameter nutze. setParms() besitzt ebenso Default Werte. Daher rufe ich diese Methode zur Initialisierung, innerhalb des Default-Konstruktors auf. Mein Problem ist der zweite Parameter von setParms(). Dieser stellt ein &quot;Punktobjekt&quot; dar und besteht aus zwei int-Parametern.</p>
<p>Gibt es eine Möglichkeit dieses Problem zu lösen ohne die Methode setParms() zu überschreiben?</p>
<p>Die Option vorab ein &quot;Punktobjekt&quot; zu erzeugen, dieses mit z.B. x=0 und y=0 zu initialisieren und an die Methode setParms() zu übergeben kann ich nicht nutzen.</p>
<p>Wie würdet ihr dieses Problem lösen?</p>
<pre><code>class A
{
   public:
      A()
       {
           this-&gt;setParms();
       }
      void setParms(const int&amp; refZahl = 0,const CPunkt&amp; refPt /* = ??? */): Zahl(refZahl),
                                                                Punkt(refPt)
      {

      }

   private:
      int Zahl;
   CPunkt Punkt;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1759008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1759008</guid><dc:creator><![CDATA[andi0815]]></dc:creator><pubDate>Tue, 11 Aug 2009 17:35:36 GMT</pubDate></item><item><title><![CDATA[Reply to Elementinitialisierer und Default-Werte ? on Tue, 11 Aug 2009 17:50:19 GMT]]></title><description><![CDATA[<p>1. Wieso der Umweg über die Funktion? Wieso verwendest du nicht die Intialisierungsliste im Konstruktor?<br />
2. Eine Initialisierungsliste bei einer Funktion? Was hast du für einen seltsamen Kompiler, welcher das aktzeptiert.<br />
3. Dreh die Reihenfolge der Parameter um, wenn du kein Defaultwert für dein Punktobjekt haben willst. Ansonsten überlädst du halt und leitest von der einen Funktion an die andere weiter.<br />
4. Wofür steht bitte <code>Parms</code> ? Parameters? Wieso dann nicht gleich <code>setParameters</code> ?</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1759020</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1759020</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Tue, 11 Aug 2009 17:50:19 GMT</pubDate></item><item><title><![CDATA[Reply to Elementinitialisierer und Default-Werte ? on Tue, 11 Aug 2009 17:54:01 GMT]]></title><description><![CDATA[<p>Bei Dir hat setParams sowas wie eine Initialisierungliste, das ist falsch und gibt es nicht.</p>
<p>Initialisierungslisten sind nur in Konstruktoren zulässig.</p>
<p>Simon</p>
<p><strong>Edit:</strong><br />
Nur der vollständigkeitshalber:</p>
<pre><code class="language-cpp">struct Punkt
{
    Punkt(int x, int y) {}
};

struct A
{
    A()
    {
        setParams();
    }

    void setParams(int zahl = 0, const Punkt&amp; punkt = Punkt(0, 0))
    {
    }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1759022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1759022</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Tue, 11 Aug 2009 17:54:01 GMT</pubDate></item><item><title><![CDATA[Reply to Elementinitialisierer und Default-Werte ? on Tue, 11 Aug 2009 18:02:11 GMT]]></title><description><![CDATA[<p>Danke für die schnelle Hilfe. Man, man, man ich hab echt nicht gemerkt was ich da mache. Ich hab überlegt wie ich dieses Punktobjekt initialisieren kann und dabei den Blick fürs wesentliche verloren. Daher hab ich das ganze auch noch nicht kompilieren lassen.</p>
<p>Parms steht da nur, weil es schnell gehen musste. Normalerweise nutze ich schon aussagekräftigere Bezeichner.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1759029</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1759029</guid><dc:creator><![CDATA[andi0815]]></dc:creator><pubDate>Tue, 11 Aug 2009 18:02:11 GMT</pubDate></item><item><title><![CDATA[Reply to Elementinitialisierer und Default-Werte ? on Tue, 11 Aug 2009 18:18:09 GMT]]></title><description><![CDATA[<blockquote>
<p>Parms steht da nur, weil es schnell gehen musste. Normalerweise nutze ich schon aussagekräftigere Bezeichner.</p>
</blockquote>
<p>delete schreibe ich normalerweise auch hin, aber manchmal muss es eben schnell gehen, dann lass ich es weg... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1759036</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1759036</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Tue, 11 Aug 2009 18:18:09 GMT</pubDate></item></channel></rss>