<?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[eigene STRING Klasse, operator + überladen]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine eigene STRING Klasse geschrieben. Funktioniert auch nahezu problemlos. Den Operator + habe ich wie folgt 2x überladen</p>
<p>friend STRING operator + (const STRING&amp;, const STRING&amp;);<br />
STRING operator + (const char*) const;</p>
<p>Zwei Probleme ergeben sich damit:</p>
<p>1. Error:<br />
STRING s = &quot;s&quot; + &quot;s&quot;;<br />
error: invalid operands of types ‘const char [2]’ and ‘const char [2]’ to binary 'operator+'</p>
<p>2. Warning:<br />
STRING = 'c' + 'c';<br />
warning: overflow in implicit constant conversion<br />
Und das Ergebnis ist auch Quatsch. Anscheinend definiert er die char* als int.</p>
<p>Wenn ich den ersten Term rechts vom Gleichheitszeichen mit STRING(...) umwandele, klappt es in beiden Fällen problemlos.</p>
<p>Muß ich den operator + noch irgendwie weiter überladen?</p>
<p>Vielen Dank!<br />
Oliver</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/273835/eigene-string-klasse-operator-überladen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 19:04:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/273835.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 14 Sep 2010 08:52:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to eigene STRING Klasse, operator + überladen on Tue, 14 Sep 2010 08:52:34 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine eigene STRING Klasse geschrieben. Funktioniert auch nahezu problemlos. Den Operator + habe ich wie folgt 2x überladen</p>
<p>friend STRING operator + (const STRING&amp;, const STRING&amp;);<br />
STRING operator + (const char*) const;</p>
<p>Zwei Probleme ergeben sich damit:</p>
<p>1. Error:<br />
STRING s = &quot;s&quot; + &quot;s&quot;;<br />
error: invalid operands of types ‘const char [2]’ and ‘const char [2]’ to binary 'operator+'</p>
<p>2. Warning:<br />
STRING = 'c' + 'c';<br />
warning: overflow in implicit constant conversion<br />
Und das Ergebnis ist auch Quatsch. Anscheinend definiert er die char* als int.</p>
<p>Wenn ich den ersten Term rechts vom Gleichheitszeichen mit STRING(...) umwandele, klappt es in beiden Fällen problemlos.</p>
<p>Muß ich den operator + noch irgendwie weiter überladen?</p>
<p>Vielen Dank!<br />
Oliver</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1952341</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1952341</guid><dc:creator><![CDATA[oliver67]]></dc:creator><pubDate>Tue, 14 Sep 2010 08:52:34 GMT</pubDate></item><item><title><![CDATA[Reply to eigene STRING Klasse, operator + überladen on Tue, 14 Sep 2010 08:57:15 GMT]]></title><description><![CDATA[<p>oliver67 schrieb:</p>
<blockquote>
<p>Hallo,</p>
<p>ich habe eine eigene STRING Klasse geschrieben. Funktioniert auch nahezu problemlos. Den Operator + habe ich wie folgt 2x überladen</p>
<p>friend STRING operator + (const STRING&amp;, const STRING&amp;);<br />
STRING operator + (const char*) const;</p>
<p>Zwei Probleme ergeben sich damit:</p>
<p>1. Error:<br />
STRING s = &quot;s&quot; + &quot;s&quot;;<br />
error: invalid operands of types ‘const char [2]’ and ‘const char [2]’ to binary 'operator+'</p>
</blockquote>
<p>Der Compiler kennt dein STRING nicht. Ganz einfach. Woher auch? <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="🙂"
    /> Er kann nicht riechen, dass Du das nach STRING konvertiert haben willst.<br />
Lösung:</p>
<pre><code class="language-cpp">STRING s = STRING(&quot;s&quot;) + STRING(&quot;s&quot;);
</code></pre>
<p>oliver67 schrieb:</p>
<blockquote>
<p>2. Warning:<br />
STRING = 'c' + 'c';<br />
warning: overflow in implicit constant conversion<br />
Und das Ergebnis ist auch Quatsch. Anscheinend definiert er die char* als int.</p>
</blockquote>
<p>Nein, das ist kein quatsch. 'c' wird als char interpretiert und das ist ein Zeichen welches durch eine Zahl repräsentiert wird. Hoffe hab das richtig erklärt, aber jedes Zeichen stellt auch eine Zahl dar, einfach gesagt.<br />
rya.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1952348</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1952348</guid><dc:creator><![CDATA[scorcher24@public.pc]]></dc:creator><pubDate>Tue, 14 Sep 2010 08:57:15 GMT</pubDate></item><item><title><![CDATA[Reply to eigene STRING Klasse, operator + überladen on Tue, 14 Sep 2010 09:01:59 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>danke für den Hinweis.<br />
Wie geschrieben war mir schon klar, dass ich mit ... = STRING(&quot;...&quot;) dass Problem beheben kann.<br />
Nur dachte/hoffte ich, dass z.B. durch ein zusätzliches Überladen der Compiler selbständig erkennt (anhand der STRING Variable links vom Gleichheitszeichen), dass eine STRING Variable dargestellt werden soll.</p>
<p>Gruß<br />
Oliver</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1952353</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1952353</guid><dc:creator><![CDATA[oliver67]]></dc:creator><pubDate>Tue, 14 Sep 2010 09:01:59 GMT</pubDate></item><item><title><![CDATA[Reply to eigene STRING Klasse, operator + überladen on Tue, 14 Sep 2010 09:29:21 GMT]]></title><description><![CDATA[<p>oliver67 schrieb:</p>
<blockquote>
<p>Nur dachte/hoffte ich, dass z.B. durch ein zusätzliches Überladen der Compiler selbständig erkennt (anhand der STRING Variable links vom Gleichheitszeichen), dass eine STRING Variable dargestellt werden soll.</p>
</blockquote>
<p>Rückgabetypen gehen in C++ <strong>nie</strong> in die Auflösung eines Funktionsaufrufes ein.</p>
<p>Für das was du willst müsstest du einen Operator + für const char[] definieren. Darf man aber nicht, weil bei Operatorüberladung immer mindestens ein selbsterstellter Typ vorkommen muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1952366</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1952366</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 14 Sep 2010 09:29:21 GMT</pubDate></item><item><title><![CDATA[Reply to eigene STRING Klasse, operator + überladen on Mon, 20 Sep 2010 06:35:32 GMT]]></title><description><![CDATA[<p>Nochmals vielen Dank für Eure Hilfe!</p>
<p>Gruß<br />
Oliver</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1954584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1954584</guid><dc:creator><![CDATA[oliver67]]></dc:creator><pubDate>Mon, 20 Sep 2010 06:35:32 GMT</pubDate></item></channel></rss>