<?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[Überladung von Operator]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich hab ein Problem mit der Überladung von OPeratoren.</p>
<p>Ich erhalte immer den Fehler:</p>
<p>error C2679: Binärer Operator '+': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operator vom Typ 'string' akzeptiert (oder keine geeignete Konvertierung möglich)</p>
<p>mit folgendem Code:</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
#include &lt;string.h&gt;

class string
{
	char *wert;

public:
	string &amp;string::operator+(char *);
	string::string(char *);
	string::string();
};

string::string()
{
	*wert=0;
}

string::string(char *text)
{
	wert=text;
}

string &amp;string::operator+(char *text)
{
	wert=strcpy(wert,text);
	return *this;
}

int _tmain(int argc, _TCHAR* argv[])
{
	string str(&quot;Hallo&quot;);
	string s1(&quot;erster Teil&quot;);
	string s2(&quot;Zweiter Teil&quot;);
	string s3;
	s3 = s1 + s2;
	return 0;
}
</code></pre>
<p>Ich arbeite zwar mit Visual C++ .NET, aber ich denke das Problem passt eher hier her, als in die Visual .NET Ecke</p>
<p>Wäre toll, wenn mir jemand helfen könnte.</p>
<p>Vielen Dank schon mal im Voraus</p>
<p>MfG Benjamin</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/130371/überladung-von-operator</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 14:36:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/130371.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 22 Dec 2005 12:53:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Überladung von Operator on Thu, 22 Dec 2005 12:53:34 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich hab ein Problem mit der Überladung von OPeratoren.</p>
<p>Ich erhalte immer den Fehler:</p>
<p>error C2679: Binärer Operator '+': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operator vom Typ 'string' akzeptiert (oder keine geeignete Konvertierung möglich)</p>
<p>mit folgendem Code:</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
#include &lt;string.h&gt;

class string
{
	char *wert;

public:
	string &amp;string::operator+(char *);
	string::string(char *);
	string::string();
};

string::string()
{
	*wert=0;
}

string::string(char *text)
{
	wert=text;
}

string &amp;string::operator+(char *text)
{
	wert=strcpy(wert,text);
	return *this;
}

int _tmain(int argc, _TCHAR* argv[])
{
	string str(&quot;Hallo&quot;);
	string s1(&quot;erster Teil&quot;);
	string s2(&quot;Zweiter Teil&quot;);
	string s3;
	s3 = s1 + s2;
	return 0;
}
</code></pre>
<p>Ich arbeite zwar mit Visual C++ .NET, aber ich denke das Problem passt eher hier her, als in die Visual .NET Ecke</p>
<p>Wäre toll, wenn mir jemand helfen könnte.</p>
<p>Vielen Dank schon mal im Voraus</p>
<p>MfG Benjamin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/947752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/947752</guid><dc:creator><![CDATA[naimo]]></dc:creator><pubDate>Thu, 22 Dec 2005 12:53:34 GMT</pubDate></item><item><title><![CDATA[Reply to Überladung von Operator on Thu, 22 Dec 2005 13:00:46 GMT]]></title><description><![CDATA[<p>Was ist an der Fehlermeldung nicht verständlich?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/947760</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/947760</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 22 Dec 2005 13:00:46 GMT</pubDate></item><item><title><![CDATA[Reply to Überladung von Operator on Thu, 22 Dec 2005 13:05:00 GMT]]></title><description><![CDATA[<p>s3 = s1 + s2;</p>
<p>Naja, es ist wie er es dir gesagt hat.;) Dein + operator unterstüzt erwartet als &quot;Parameter&quot; einen char*, aber du gibst ihm hier ja ein string objekt. Du brauchst also entweder zusätzlich einen + Operator der mit einem string objekt umgehen kann oder du musst den cast operator nach char* implementieren.</p>
<p>Noch was am Rande: wenn du einen char * an eine Funktion übergibst der nur für die Eingabe dient und nicht verändert werden soll, dann solltest du den Parameter als const char * definieren. Es wäre auch nicht ratsam in deiner String klasse einen cast operator für char* zu definieren, sondern höchstens einen für const char *, da die Daten ja nicht so einfach auserhalb deines String objektes bearbeitet werden sollen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/947764</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/947764</guid><dc:creator><![CDATA[template]]></dc:creator><pubDate>Thu, 22 Dec 2005 13:05:00 GMT</pubDate></item><item><title><![CDATA[Reply to Überladung von Operator on Thu, 22 Dec 2005 13:05:08 GMT]]></title><description><![CDATA[<p>Du hast einen operator+ für string und char*, aber keinen, der zwei string's verknüpft (und du hast auch keinen Operator definiert, der dir den string s2 in einen char* umwandeln kann.</p>
<p>(btw, über die Funktionsweise des Operators und die verbundenen Laufzeitprobleme decken wir mal den Mantel des Schweigens ;))</p>
]]></description><link>https://www.c-plusplus.net/forum/post/947765</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/947765</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Thu, 22 Dec 2005 13:05:08 GMT</pubDate></item></channel></rss>