<?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[Membervariablen initialisieren, wenn sie den selben namen wie konstruktor-parameter haben]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie der titel schon sagt möchte ich die parameter meines konstruktors genauso nennen wie membervariablen. Ist das irgendwie möglich?</p>
<p>Soll ungefähr so aussehen:</p>
<pre><code>class UART
{
  public:
    UART( uint8_t deviceID );
  private:
    uint8_t deviceID;
};

UART::UART( uint8_t deviceID )
  : deviceID( deviceID )
{
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/191701/membervariablen-initialisieren-wenn-sie-den-selben-namen-wie-konstruktor-parameter-haben</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 06:24:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/191701.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 05 Sep 2007 16:18:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Membervariablen initialisieren, wenn sie den selben namen wie konstruktor-parameter haben on Wed, 05 Sep 2007 16:18:47 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie der titel schon sagt möchte ich die parameter meines konstruktors genauso nennen wie membervariablen. Ist das irgendwie möglich?</p>
<p>Soll ungefähr so aussehen:</p>
<pre><code>class UART
{
  public:
    UART( uint8_t deviceID );
  private:
    uint8_t deviceID;
};

UART::UART( uint8_t deviceID )
  : deviceID( deviceID )
{
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1359587</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1359587</guid><dc:creator><![CDATA[CGI-BIN]]></dc:creator><pubDate>Wed, 05 Sep 2007 16:18:47 GMT</pubDate></item><item><title><![CDATA[Reply to Membervariablen initialisieren, wenn sie den selben namen wie konstruktor-parameter haben on Wed, 05 Sep 2007 16:26:30 GMT]]></title><description><![CDATA[<p>vielleicht nur mit einem :: vor dem variablennamen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1359597</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1359597</guid><dc:creator><![CDATA[gdgfd]]></dc:creator><pubDate>Wed, 05 Sep 2007 16:26:30 GMT</pubDate></item><item><title><![CDATA[Reply to Membervariablen initialisieren, wenn sie den selben namen wie konstruktor-parameter haben on Wed, 05 Sep 2007 16:33:03 GMT]]></title><description><![CDATA[<p>probiers doch einfach aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1359601</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1359601</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 05 Sep 2007 16:33:03 GMT</pubDate></item><item><title><![CDATA[Reply to Membervariablen initialisieren, wenn sie den selben namen wie konstruktor-parameter haben on Wed, 05 Sep 2007 17:38:29 GMT]]></title><description><![CDATA[<p>Das geht genau so wie du es geschrieben hast, da Parameter Membervariablen verdecken. Wenn du auf die Membervariable zugreifen willst, schreib einfach this-&gt; davor.<br />
U.a. aus diesem Grund verwenden wohl viele Leute eine besondere Notation für Membervariablen, z.B. m_member oder member_.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1359645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1359645</guid><dc:creator><![CDATA[TomasRiker]]></dc:creator><pubDate>Wed, 05 Sep 2007 17:38:29 GMT</pubDate></item><item><title><![CDATA[Reply to Membervariablen initialisieren, wenn sie den selben namen wie konstruktor-parameter haben on Wed, 05 Sep 2007 19:27:24 GMT]]></title><description><![CDATA[<p>naja mit dem this in der init-list kommen warnings, aber jetzt hab ich das mir auch mal angeguckt und es geht einfach mit UART::deviceID.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1359722</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1359722</guid><dc:creator><![CDATA[dfgfdgf]]></dc:creator><pubDate>Wed, 05 Sep 2007 19:27:24 GMT</pubDate></item><item><title><![CDATA[Reply to Membervariablen initialisieren, wenn sie den selben namen wie konstruktor-parameter haben on Wed, 05 Sep 2007 19:30:03 GMT]]></title><description><![CDATA[<p>Ähh ich weiß jetzt nich was ich für drogen genommen habe, aber den quatsch mit UART:: kannst du in die tonne treten. Es kompiliert doch ganz einfach so mit dem gleichen namen, und der wertt ist an ende auch jesetzt,</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1359725</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1359725</guid><dc:creator><![CDATA[dhdhfhf]]></dc:creator><pubDate>Wed, 05 Sep 2007 19:30:03 GMT</pubDate></item><item><title><![CDATA[Reply to Membervariablen initialisieren, wenn sie den selben namen wie konstruktor-parameter haben on Wed, 05 Sep 2007 20:04:36 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class UART
{
  public:
    UART(uint8_t);
  private:
    uint8_t deviceID;
};

UART::UART(uint8_t deviceID)  : deviceID(deviceID)
{
    this-&gt;deviceID += 1; // hier musst du this davor setzen, da er sonnst wahrscheinlich dem Parameter Vorrang geben würde.
}
</code></pre>
<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1359757</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1359757</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Wed, 05 Sep 2007 20:04:36 GMT</pubDate></item><item><title><![CDATA[Reply to Membervariablen initialisieren, wenn sie den selben namen wie konstruktor-parameter haben on Thu, 06 Sep 2007 03:13:46 GMT]]></title><description><![CDATA[<p>Das wollten wir dir doch die ganze Zeit sagen, das es auch ohne &quot;this-&gt;&quot; und &quot;UART::&quot; geht:)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1359858</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1359858</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Thu, 06 Sep 2007 03:13:46 GMT</pubDate></item><item><title><![CDATA[Reply to Membervariablen initialisieren, wenn sie den selben namen wie konstruktor-parameter haben on Thu, 06 Sep 2007 06:53:30 GMT]]></title><description><![CDATA[<p>Hallo nochmal,</p>
<p>vielen Dank für eure zahlreichen Antworten.<br />
Hab das ganze jetzt auch mal im Linux mit gcc ausprobiert, da klappt es wunderbar.<br />
Bisher hatte ich es immer nur mit meinem ARM-ELF-GCC gemacht, da das Programm für eben einen solchen ARM-Mikrocontroller gedacht ist.<br />
Dort bekam ich immer eine warning</p>
<pre><code>src/led_gpio.cpp: In constructor ‘LED_GPIO::LED_GPIO(uint32_t*, uint8_t, bool)’:
src/led_gpio.cpp:5: warning: declaration of ‘isActivelow’ shadows a member of 'this'
</code></pre>
<p>und dachte deshalb es müsste auch eine &quot;schöne&quot; Lösung dafür geben.<br />
Aber wenn sich alle einig sind, dasses so gemacht wird, werde ich es dabei belassen.</p>
<p>Danke für die Hilfe!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1359899</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1359899</guid><dc:creator><![CDATA[CGI-BIN]]></dc:creator><pubDate>Thu, 06 Sep 2007 06:53:30 GMT</pubDate></item><item><title><![CDATA[Reply to Membervariablen initialisieren, wenn sie den selben namen wie konstruktor-parameter haben on Thu, 06 Sep 2007 10:43:40 GMT]]></title><description><![CDATA[<p>Die Warnung ist ja auch richtig. Im Rumpf des Konstruktors ist deine membervariable nur noch zugaenglich, wenn du sie Qualifizierst.</p>
<pre><code class="language-cpp">class UART
{
  public:
    UART(uint8_t);
  private:
    uint8_t deviceID; //deklaration des Members
};

UART::UART(uint8_t deviceID)  //hier kriegt der Parameter den gleichen Namen!
  : /*das hier ist klarerweise das member, da es in de init-list steht*/deviceID   (deviceID)//es wird aber mit dem Parameter initialisiert
{
    deviceID += 1; //hier ueberdeckt der Parameter den member (=&gt; Compilerwarnung), deshalb
    this-&gt;deviceID += 1; //muss der member mit this-&gt; qualifiziert werden
    UART::deviceID += 1; //oder mit dem Bereichsoperator
}
</code></pre>
<p>Sollte das ganze klar machen. Aber wie schon gesagt wurde: besser fuer member etwas unterschiedliche Namen nehmen, damits nicht ganz so unschoen zu lesen/schreiben ist</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1360111</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1360111</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 06 Sep 2007 10:43:40 GMT</pubDate></item></channel></rss>