<?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[Tut zu viel &amp;quot;const&amp;quot; noch gut?]]></title><description><![CDATA[<p>Jeder empfiehlt das SChlüsselwort const so oft wie möglich zu benutzen.<br />
Aber irgendwie leidet die Leserlichkeit des Codes darunter.<br />
Beispiel<br />
Klasse 1:</p>
<pre><code class="language-cpp">class CFoo
{
private:
    int m_i;
public:
    CFoo(int i) :m_i(i) {}
    int GetI() { return(m_i); }
};
</code></pre>
<p>Klasse 2:</p>
<pre><code class="language-cpp">class CFoo
{
private:
    const int m_c_i;
public:
    CFoo(const int i) :m_c_i(i) {}
    const int GetI() const { return(m_c_i); }
};
</code></pre>
<p>Das wären in dieser kleinen popeligen 8-Zeiler-Klasse schon 4-mal const.<br />
Wenn das jetzt noch umfangreicher wird, ergibt das finde ich ein ganz schönes Chaos!</p>
<p>Was haltet ihr davon?<br />
Welches const kann man sich sparen, was muss unbedingt sein?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/221571/tut-zu-viel-quot-const-quot-noch-gut</link><generator>RSS for Node</generator><lastBuildDate>Tue, 06 Oct 2026 01:32:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/221571.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 31 Aug 2008 17:53:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Tut zu viel &amp;quot;const&amp;quot; noch gut? on Sun, 31 Aug 2008 17:53:41 GMT]]></title><description><![CDATA[<p>Jeder empfiehlt das SChlüsselwort const so oft wie möglich zu benutzen.<br />
Aber irgendwie leidet die Leserlichkeit des Codes darunter.<br />
Beispiel<br />
Klasse 1:</p>
<pre><code class="language-cpp">class CFoo
{
private:
    int m_i;
public:
    CFoo(int i) :m_i(i) {}
    int GetI() { return(m_i); }
};
</code></pre>
<p>Klasse 2:</p>
<pre><code class="language-cpp">class CFoo
{
private:
    const int m_c_i;
public:
    CFoo(const int i) :m_c_i(i) {}
    const int GetI() const { return(m_c_i); }
};
</code></pre>
<p>Das wären in dieser kleinen popeligen 8-Zeiler-Klasse schon 4-mal const.<br />
Wenn das jetzt noch umfangreicher wird, ergibt das finde ich ein ganz schönes Chaos!</p>
<p>Was haltet ihr davon?<br />
Welches const kann man sich sparen, was muss unbedingt sein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1574341</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1574341</guid><dc:creator><![CDATA[Blaze]]></dc:creator><pubDate>Sun, 31 Aug 2008 17:53:41 GMT</pubDate></item><item><title><![CDATA[Reply to Tut zu viel &amp;quot;const&amp;quot; noch gut? on Sun, 31 Aug 2008 17:56:18 GMT]]></title><description><![CDATA[<p>const und nicht const member sind was ganz unterschiedliches, da kommt es nicht drauf an was besser ist, sondern was man will.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1574344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1574344</guid><dc:creator><![CDATA[naja]]></dc:creator><pubDate>Sun, 31 Aug 2008 17:56:18 GMT</pubDate></item><item><title><![CDATA[Reply to Tut zu viel &amp;quot;const&amp;quot; noch gut? on Sun, 31 Aug 2008 18:11:06 GMT]]></title><description><![CDATA[<p>Nein, nicht const wo es geht, sondern const wo es Sinn macht:</p>
<pre><code class="language-cpp">class Foo //brrr, bei dem C graust es einem ja
{ 
private: 
    const int m_c_i; //aendert es sich echt nie?
                     //das kommt _sehr_ selten vor
public: 
    Foo(int i) :m_c_i(i) {} //kein const
    int GetI() const { return(m_c_i); } 
    //kein const beim return, sondern nur const fuer die methode
};
</code></pre>
<p>parameter die by value uebergeben oder zurueck gegeben werden muessen nicht const sein. macht meistens auch 0 sinn sie const du deklarieren, denn das ist nichtssagend. es sind ja kopien und was mit den kopien geschieht ist eigentlich egal...</p>
<p>PS:<br />
bei dem m_c_i graust es mir ja noch mehr als bei dem CFoo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1574345</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1574345</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sun, 31 Aug 2008 18:11:06 GMT</pubDate></item><item><title><![CDATA[Reply to Tut zu viel &amp;quot;const&amp;quot; noch gut? on Sun, 31 Aug 2008 18:10:26 GMT]]></title><description><![CDATA[<p>Blaze schrieb:</p>
<blockquote>
<p>Jeder empfiehlt das SChlüsselwort const so oft wie möglich zu benutzen.</p>
</blockquote>
<p>Glaub nie, man müsste etwas benutzen, nur weil man es kann. Code dient schließlich nicht der Dekoration, sondern ist Ausdruck eines Konzeptes.</p>
<p>Blaze schrieb:</p>
<blockquote>
<p>Welches const kann man sich sparen, was muss unbedingt sein?</p>
</blockquote>
<p>Sparen kann und sollte man sich alles, was keinen eigenen Sinn hat.<br />
Ist die Konstanz von CFoo::m_i etwas, das unabhängig einer evtl. bestehenden Konstanz eines CFoo-Objektes existiert bzw. wäre CFoo::m_i für ein gedachtes nicht-konstantes CFoo-Objekt immer noch konstant? Wenn ja, dann muss es auch so deklariert werden, andernfalls eben nicht.<br />
Der konstante Rückgabetyp von CFoo::GetI ist de facto überflüssig. Er verändert zwar den Typ der Funktion, nicht aber den Typ eines Funktionsaufrufes (der ist trotzdem nur int).<br />
Ist ein Konstrukt ohne Bedeutung, verwende ist nicht.<br />
Ist es nicht bedeutungslos, verwende es genau dann, wenn seine Bedeutung dem entspricht, was du ausdrücken möchtest.<br />
Ganz einfach - verlangt im Gegensatz zu &quot;const wo nur möglich&quot; aber natürlich Mitdenken, und das scheint mitunter schon zu viel verlangt zu sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1574349</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1574349</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sun, 31 Aug 2008 18:10:26 GMT</pubDate></item><item><title><![CDATA[Reply to Tut zu viel &amp;quot;const&amp;quot; noch gut? on Sun, 31 Aug 2008 19:02:32 GMT]]></title><description><![CDATA[<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>parameter die by value uebergeben oder zurueck gegeben werden muessen nicht const sein. macht meistens auch 0 sinn sie const du deklarieren, denn das ist nichtssagend.</p>
</blockquote>
<p>für den aufrufer, für den programmierer der funktion aber nicht. er will einen parameter in der funktion vllt. wirklich unveränderbar haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1574370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1574370</guid><dc:creator><![CDATA[quadratschädel]]></dc:creator><pubDate>Sun, 31 Aug 2008 19:02:32 GMT</pubDate></item><item><title><![CDATA[Reply to Tut zu viel &amp;quot;const&amp;quot; noch gut? on Sun, 31 Aug 2008 19:07:38 GMT]]></title><description><![CDATA[<p>quadratschädel schrieb:</p>
<blockquote>
<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>parameter die by value uebergeben oder zurueck gegeben werden muessen nicht const sein. macht meistens auch 0 sinn sie const du deklarieren, denn das ist nichtssagend.</p>
</blockquote>
<p>für den aufrufer, für den programmierer der funktion aber nicht. er will einen parameter in der funktion vllt. wirklich unveränderbar haben.</p>
</blockquote>
<p>Mit anderen Worten: es ist ein Implementationsdetail, dass in einer bloßen Deklaration nichts zu suchen hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1574373</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1574373</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sun, 31 Aug 2008 19:07:38 GMT</pubDate></item><item><title><![CDATA[Reply to Tut zu viel &amp;quot;const&amp;quot; noch gut? on Sun, 31 Aug 2008 19:08:45 GMT]]></title><description><![CDATA[<p>quadratschädel schrieb:</p>
<blockquote>
<p>für den aufrufer, für den programmierer der funktion aber nicht. er will einen parameter in der funktion vllt. wirklich unveränderbar haben.</p>
</blockquote>
<p>dann kann man das ja gerne wenn man so verrueckt ist in der implementierung auch so machen (wobei es halt sinnlos ist und nur die lesbarkeit des codes reduziert) aber bitte NIE NIE NIE in einer interface definition. Denn das erschwert nur das verstehen und lesen.</p>
<p>und bringen tut es ja absolut garnichts...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1574374</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1574374</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sun, 31 Aug 2008 19:08:45 GMT</pubDate></item><item><title><![CDATA[Reply to Tut zu viel &amp;quot;const&amp;quot; noch gut? on Sun, 31 Aug 2008 22:06:26 GMT]]></title><description><![CDATA[<p>Blaze schrieb:</p>
<blockquote>
<p>Jeder empfiehlt das SChlüsselwort const so oft wie möglich zu benutzen.</p>
</blockquote>
<p>Mich würde echt mal interessieren, <strong>wer</strong> so etwas empfiehlt. Jeder bestimmt nicht... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1574396</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1574396</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 31 Aug 2008 22:06:26 GMT</pubDate></item><item><title><![CDATA[Reply to Tut zu viel &amp;quot;const&amp;quot; noch gut? on Mon, 01 Sep 2008 08:30:18 GMT]]></title><description><![CDATA[<p>Moin.</p>
<p>Steht in manchen Büchern.<br />
Mal ne Frage, wie soll man das bitte trennen? Entweder der Parameter ist const<br />
oder nicht. Und das sollte in der Deklaration sowie in der Definition gleich<br />
sein, wegen unseren beliebten Compilern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1574493</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1574493</guid><dc:creator><![CDATA[Chuck]]></dc:creator><pubDate>Mon, 01 Sep 2008 08:30:18 GMT</pubDate></item><item><title><![CDATA[Reply to Tut zu viel &amp;quot;const&amp;quot; noch gut? on Mon, 01 Sep 2008 08:44:00 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">void f(int a); // const macht beim Parameter keinen Sinn, ist eine Kopie
void f(const int&amp; a); // macht Sinn, da Referenz
void f(const MyClass a); // kann Sinn machen, je nach Aufbau der Klasse bzw wie der Copy-
                         // konstruktor gestaltet wurde. Gutes Design? Naja...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1574502</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1574502</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Mon, 01 Sep 2008 08:44:00 GMT</pubDate></item><item><title><![CDATA[Reply to Tut zu viel &amp;quot;const&amp;quot; noch gut? on Mon, 01 Sep 2008 09:15:27 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">void f(const int a);     // const wird vom Compiler ignorierert, der Funktionstyp ist void(int)
                         // Funktion kann beliebig mit oder ohne const redeklariert werden
                         // Nur im Falle einer Definition wird ein evtl. vorhandenes const innerhalb der Definition beachtet
void f(const int&amp; a);    // Referenzen sind selbst nie const-qualifiziert (es sind keine Objekte), hier wäre ein const vor a nicht zulässig
                         // const vor dem int ist natürlich eine ganz andere Geschichte
                         // Funktionstyp ist void(const int&amp;)
void f(const MyClass a); // const wird vom Compiler ignorierert, der Funktionstyp ist void(MyClass)
                         // Funktion kann beliebig mit oder ohne const redeklariert werden
                         // Nur im Falle einer Definition wird ein evtl. vorhandenes const innerhalb der Definition beachtet
// Merke: eine Top-Level cv-Qualifikation eines Funktionsparameters beeinflusst den Funktionstyp nicht

const void g();          // const wird vom Compiler beachtet und muss bei Redeklaration erneut dastehen
                         // Funktionstyp ist const void()
                         // aber: Typ des Funktionsaufrufs g()  ist void !
                         // Deshalb: dieses const nicht verwenden, da bedeutungslos
const int g();           // analog zu const void g(), Typ des Funktionsaufrufs g()  ist int, da skalar
struct Foo { int x; };
const struct Foo g();    // const wird vom Compiler beachtet und muss bei Redeklaration erneut dastehen
                         // Funktionstyp ist const Foo()
                         // Typ des Funktionsaufrufs g() ist
                         // in C: Foo
                         // in C++: const Foo
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1574519</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1574519</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Mon, 01 Sep 2008 09:15:27 GMT</pubDate></item><item><title><![CDATA[Reply to Tut zu viel &amp;quot;const&amp;quot; noch gut? on Mon, 01 Sep 2008 09:46:59 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Blaze schrieb:</p>
<blockquote>
<p>Jeder empfiehlt das SChlüsselwort const so oft wie möglich zu benutzen.</p>
</blockquote>
<p>Mich würde echt mal interessieren, <strong>wer</strong> so etwas empfiehlt. Jeder bestimmt nicht... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Und wenn steht diese Empfehlung wohl immer im Zusammenhang mit sinnvoller const-Behandlung (Thema <a href="http://www.parashift.com/c++-faq-lite/const-correctness.html" rel="nofollow">const-correctness</a>). Ich gehöre auch zu der Fraktion, die const überall wo möglich und sinnvoll einbaut. Und nein, die Lesbarkeit leidet bei entsprechender Formatierung nicht darunter.</p>
<p>Das Codebeispiel vom OP ist mehr als grausam (von den fehlerhalften const-Verwendungen mal abgesehen).<br />
a) Trennt man ohnehin im Regelfall Definition von Deklaration<br />
b) Muss man nicht alles zwangsweise in eine Zeile quetschen</p>
<p>Daher: Unabhängig von const oder nicht const, kann Code lesbar bleiben. Und const-correctness macht auch Sinn - sofern man diese sinnvoll anwendet.</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1574541</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1574541</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Mon, 01 Sep 2008 09:46:59 GMT</pubDate></item><item><title><![CDATA[Reply to Tut zu viel &amp;quot;const&amp;quot; noch gut? on Mon, 01 Sep 2008 11:44:39 GMT]]></title><description><![CDATA[<p>asc schrieb:</p>
<blockquote>
<p>Ich gehöre auch zu der Fraktion, die const überall wo möglich <strong>und sinnvoll</strong> einbaut.</p>
</blockquote>
<p>Das ist ja auch gut so. Mich hat es nur stutzig gemacht, wenn behauptet wird, <code>const</code> sollte man überall einsetzen, wo es möglich ist.</p>
<p>Wann ist eigentlich ein <code>const</code> -Rückgabetyp bei eigenen Typen von Bedeutung? Mir fällt gerade nur das folgende Beispiel (und ähnliche) ein:</p>
<pre><code class="language-cpp">struct Vec2D
{
	int x;
	int y;
	Vec2D(int nx, int ny) : x(nx), y(ny) {}
};

/*const*/ Vec2D operator+ (const Vec2D&amp; Left, const Vec2D&amp; Right)
{
	return Vec2D(Left.x + Right.x, Left.y + Right.y);
}

int main() 
{
	Vec2D A(3, 4), B(7, -2);

	(A + B) = Vec2D(8, 0); // geht nicht, wenn op+ const-Rückgabetyp
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1574631</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1574631</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 01 Sep 2008 11:44:39 GMT</pubDate></item><item><title><![CDATA[Reply to Tut zu viel &amp;quot;const&amp;quot; noch gut? on Mon, 01 Sep 2008 11:55:54 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Wann ist eigentlich ein <code>const</code> -Rückgabetyp bei eigenen Typen von Bedeutung?</p>
</blockquote>
<p>Zum Beispiel für sowas:</p>
<pre><code class="language-cpp">class Test
{
private:
  std::string m_name;

public:
  std::string const&amp; get_name() const;
}
</code></pre>
<p>Damit erspart man sich eine Kopie und erst recht, wenn man nur lesen möchte und nicht schreiben. Das kann der Compiler dann auch extrem optimieren.<br />
Und das gilt natürlich nicht nur für <code>std::string</code> , sondern für jedes grössere Objekt.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1574645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1574645</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Mon, 01 Sep 2008 11:55:54 GMT</pubDate></item><item><title><![CDATA[Reply to Tut zu viel &amp;quot;const&amp;quot; noch gut? on Mon, 01 Sep 2008 12:02:20 GMT]]></title><description><![CDATA[<p>Ja, Const-Referenzen sind mir schon klar <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="😉"
    /></p>
<p>Ich hab mich wohl zu wenig genau ausgedrückt. Ich dachte eher an einen Rückgabetypen wie <code>const MyClass</code> (also keine Referenz); also wo das noch eine Anwendung findet...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1574657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1574657</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 01 Sep 2008 12:02:20 GMT</pubDate></item><item><title><![CDATA[Reply to Tut zu viel &amp;quot;const&amp;quot; noch gut? on Mon, 01 Sep 2008 12:26:23 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Wann ist eigentlich ein <code>const</code> -Rückgabetyp bei eigenen Typen von Bedeutung?</p>
</blockquote>
<p>Const bei eigenen Rückgabetypen sind genau aus den Gründen sinnvoll die du schon als Beispiel heranziehst:</p>
<p>Nexus schrieb:</p>
<blockquote>
<pre><code class="language-cpp">int main() 
{
	Vec2D A(3, 4), B(7, -2);
	
	(A + B) = Vec2D(8, 0); // geht nicht, wenn op+ const-Rückgabetyp
}
</code></pre>
</blockquote>
<p>Und um ein weiteres Beispiel von Scott Meyers (Effektiv C++ Programmieren, 3te Auflage; Tipp 3; Seite 35) zu bringen: Es macht auch sinn um bestimmte weitere Fehlerfälle zu verhindern:</p>
<pre><code class="language-cpp">if(a * b = c) // Ausversehen = statt ==
</code></pre>
<p>Gut, je nach Warnungseinstellungen sollte dies eh angemeckert werden, aber dies ist ja nur eines von vielen Beispielen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1574683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1574683</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Mon, 01 Sep 2008 12:26:23 GMT</pubDate></item><item><title><![CDATA[Reply to Tut zu viel &amp;quot;const&amp;quot; noch gut? on Mon, 01 Sep 2008 14:02:45 GMT]]></title><description><![CDATA[<p>asc schrieb:</p>
<blockquote>
<pre><code class="language-cpp">if(a * b = c) // Ausversehen = statt ==
</code></pre>
<p>Gut, je nach Warnungseinstellungen sollte dies eh angemeckert werden, aber dies ist ja nur eines von vielen Beispielen.</p>
</blockquote>
<p>Müsste a*b nicht eh eine temporäre Variable liefern die nicht als lvalue fungieren kann? Sprich: sollte der sich der Compiler da nicht weigern, egal ob op* const liefert oder nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1574793</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1574793</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 01 Sep 2008 14:02:45 GMT</pubDate></item><item><title><![CDATA[Reply to Tut zu viel &amp;quot;const&amp;quot; noch gut? on Mon, 01 Sep 2008 14:16:45 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Müsste a*b nicht eh eine temporäre Variable liefern die nicht als lvalue fungieren kann? Sprich: sollte der sich der Compiler da nicht weigern, egal ob op* const liefert oder nicht?</p>
</blockquote>
<p>Der Ausdruck a*b ist (wenn es sich nicht gerade um einen überladenen Operator mit Referenzrückgabe handelt) ein rvalue. Ist der Typ des Ausdrucks der einer Klasse, verweist er zudem auf ein Objekt, nämlich ein temporäres.<br />
Ist der linke Operand des = Operators ein Klassenobjekt, wird der Scope der Klasse nach Überladungen durchsucht (und wenigstens eine wird immer gefunden werden). Überladungen des Zuweisungsoperators sind stets nicht-statische Memberfunktionen. Das Argument des Objektparameters einer nichtstatischen Memberfunktion kann sowohl ein lvalue als auch ein rvalue sein.</p>
<pre><code class="language-cpp">std::bitset&lt;10&gt; x;
x[8] = true;
</code></pre>
<p>Das Ergebnis von x[8] ist hier ein temporäres Objekt des Typs std::bitset&lt;10&gt;::reference - und diese Zuweisung ist zweifellos nicht sinnlos.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1574803</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1574803</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Mon, 01 Sep 2008 14:16:45 GMT</pubDate></item></channel></rss>