<?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[Überladene Opertoren hintereinander benutzen]]></title><description><![CDATA[<p>Hi, mal ne Frage.<br />
Wie kann ich operatoren so überladen, dass ich sie nacheinander benutzen kann?<br />
Wie zum Beispiel</p>
<pre><code class="language-cpp">int a=1+2+3;
</code></pre>
<p>, anstatt</p>
<pre><code class="language-cpp">int a=1+2,b=a+3;
</code></pre>
<p>.<br />
Oder</p>
<pre><code class="language-cpp">cout&lt;&lt;&quot;Erster String&quot;&lt;&lt;endl&lt;&lt;&quot;Zweiter String&quot;;
</code></pre>
<p>Ich habs an einer Klasse, die einen String speichert versucht, aber es benutzt immer nur das erste, was ich angebe. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Hier ist der Code</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;
#include&lt;cstring&gt;
using namespace std;

class CText
{
private:
    char m_acText[1024];
public:
    CText()
    {
        strcpy(m_acText,&quot;&quot;);
    }
    char * getBuffer()
    {
        return(m_acText);
    }
    void operator&lt;&lt;(CText &amp;t)
    {
        strcat(m_acText,t.m_acText);
    }

    CText operator&lt;&lt;(char *s)
    {
         strcat(m_acText,s);
         return(*this);
    }
};

int main()
{
	CText Text;
	Text&lt;&lt;&quot;Hallo&quot;&lt;&lt;&quot; Welt!&quot;;

	cout&lt;&lt;Text.getBuffer()&lt;&lt;endl;
	return(0);
}
</code></pre>
<p>Hat jemand ne Idee was ich falsch mache? Ich weiß dass es einfach ist, ich komm bloß nicht drauf</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/194567/überladene-opertoren-hintereinander-benutzen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 29 Sep 2026 14:27:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/194567.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 08 Oct 2007 14:38:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Überladene Opertoren hintereinander benutzen on Mon, 08 Oct 2007 14:38:38 GMT]]></title><description><![CDATA[<p>Hi, mal ne Frage.<br />
Wie kann ich operatoren so überladen, dass ich sie nacheinander benutzen kann?<br />
Wie zum Beispiel</p>
<pre><code class="language-cpp">int a=1+2+3;
</code></pre>
<p>, anstatt</p>
<pre><code class="language-cpp">int a=1+2,b=a+3;
</code></pre>
<p>.<br />
Oder</p>
<pre><code class="language-cpp">cout&lt;&lt;&quot;Erster String&quot;&lt;&lt;endl&lt;&lt;&quot;Zweiter String&quot;;
</code></pre>
<p>Ich habs an einer Klasse, die einen String speichert versucht, aber es benutzt immer nur das erste, was ich angebe. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Hier ist der Code</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;
#include&lt;cstring&gt;
using namespace std;

class CText
{
private:
    char m_acText[1024];
public:
    CText()
    {
        strcpy(m_acText,&quot;&quot;);
    }
    char * getBuffer()
    {
        return(m_acText);
    }
    void operator&lt;&lt;(CText &amp;t)
    {
        strcat(m_acText,t.m_acText);
    }

    CText operator&lt;&lt;(char *s)
    {
         strcat(m_acText,s);
         return(*this);
    }
};

int main()
{
	CText Text;
	Text&lt;&lt;&quot;Hallo&quot;&lt;&lt;&quot; Welt!&quot;;

	cout&lt;&lt;Text.getBuffer()&lt;&lt;endl;
	return(0);
}
</code></pre>
<p>Hat jemand ne Idee was ich falsch mache? Ich weiß dass es einfach ist, ich komm bloß nicht drauf</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1380546</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1380546</guid><dc:creator><![CDATA[Vox 3D]]></dc:creator><pubDate>Mon, 08 Oct 2007 14:38:38 GMT</pubDate></item><item><title><![CDATA[Reply to Überladene Opertoren hintereinander benutzen on Mon, 08 Oct 2007 14:40:48 GMT]]></title><description><![CDATA[<p>der operator&lt;&lt; sollte eine Referenz, anstatt einer Kopie zurück geben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1380550</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1380550</guid><dc:creator><![CDATA[Airdamn]]></dc:creator><pubDate>Mon, 08 Oct 2007 14:40:48 GMT</pubDate></item><item><title><![CDATA[Reply to Überladene Opertoren hintereinander benutzen on Mon, 08 Oct 2007 14:44:25 GMT]]></title><description><![CDATA[<p>Tausend Dank! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /><br />
Ging aber schnell!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1380552</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1380552</guid><dc:creator><![CDATA[Vox 3D]]></dc:creator><pubDate>Mon, 08 Oct 2007 14:44:25 GMT</pubDate></item><item><title><![CDATA[Reply to Überladene Opertoren hintereinander benutzen on Mon, 08 Oct 2007 14:46:39 GMT]]></title><description><![CDATA[<p>Airdamn schrieb:</p>
<blockquote>
<p>der operator&lt;&lt; sollte eine Referenz, anstatt einer Kopie zurück geben.</p>
</blockquote>
<p>Und zwar beide Versionen <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>übrigens solltest du auch eine const-Referenz als Parameter übernehmen:</p>
<pre><code class="language-cpp">CTest&amp; operator&lt;&lt;(const CTest&amp; t)
{
  strcat(m_acText,t.m_acText);
  return *this;
}
</code></pre>
<p>(und anstelle des char-Arrays würde ich lieber std::string verwenden)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1380556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1380556</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 08 Oct 2007 14:46:39 GMT</pubDate></item></channel></rss>