<?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[Operatorüberladung  &amp;quot;=&amp;quot;]]></title><description><![CDATA[<p>**Hi,</p>
<p>ich habe eine Klasse in der zwei Strukturen definiert sind. Nun möchte ich den Zuweisungsoperator in der Art überladen:<br />
**</p>
<pre><code class="language-cpp">typedef struct{
double x,y,z;
}DOU;

typedef struct{
float x,y,z;
}FLO;

Mayclass::DOU Mayclass::operator = (Mayclass::FLO B)
{Mayclass::DOU A;
A.x=B.x;A.y=B.y;A.z=B.z;
return A;
}
</code></pre>
<p><strong>geht sowas?<br />
das klappt beim mir nicht</strong></p>
<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/200370/operatorüberladung-quot-quot</link><generator>RSS for Node</generator><lastBuildDate>Sun, 04 Oct 2026 19:51:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/200370.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 13 Dec 2007 22:21:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Operatorüberladung  &amp;quot;=&amp;quot; on Thu, 13 Dec 2007 22:21:05 GMT]]></title><description><![CDATA[<p>**Hi,</p>
<p>ich habe eine Klasse in der zwei Strukturen definiert sind. Nun möchte ich den Zuweisungsoperator in der Art überladen:<br />
**</p>
<pre><code class="language-cpp">typedef struct{
double x,y,z;
}DOU;

typedef struct{
float x,y,z;
}FLO;

Mayclass::DOU Mayclass::operator = (Mayclass::FLO B)
{Mayclass::DOU A;
A.x=B.x;A.y=B.y;A.z=B.z;
return A;
}
</code></pre>
<p><strong>geht sowas?<br />
das klappt beim mir nicht</strong></p>
<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420250</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420250</guid><dc:creator><![CDATA[Überladung]]></dc:creator><pubDate>Thu, 13 Dec 2007 22:21:05 GMT</pubDate></item><item><title><![CDATA[Reply to Operatorüberladung  &amp;quot;=&amp;quot; on Fri, 14 Dec 2007 06:52:40 GMT]]></title><description><![CDATA[<p>Der Zuweisungsoperator wird überladen, um der Klasse etwas zuzuweisen, in der er definiert ist - d.h. in deinem Fall für Zuweisungen von FLO nach Mayclass. Wenn du zwischen den beiden structs zuweisen willst, mußt du ihnen selber einen Zuweisungsoperator verpassen:</p>
<pre><code class="language-cpp">struct FLO;
struct DOU
{
  double x,y,z;
  DOU&amp; operator=(const FLO&amp;);
}
struct FLO
{
  float x,y,z;
  FLO&amp; operator=(const DOU);
}

Mayclass::DOU&amp; Mayclass::DOU::operator=(const Mayclass::FLO&amp; other)
{
  x=other.x;y=other.y;z=other.z;
  return *this;
}
</code></pre>
<p>(und der Vollständigkeit halber solltest du auch Konvertierungs-konstruktoren bereitstellen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420289</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420289</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 14 Dec 2007 06:52:40 GMT</pubDate></item><item><title><![CDATA[Reply to Operatorüberladung  &amp;quot;=&amp;quot; on Fri, 14 Dec 2007 06:52:53 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile-var-mode-is-viewprofile-and-u-is-18038.html" rel="nofollow">CStoll</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-1.html" rel="nofollow">MFC (Visual C++)</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-15.html" rel="nofollow">C++</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39405.html" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420290</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420290</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Fri, 14 Dec 2007 06:52:53 GMT</pubDate></item><item><title><![CDATA[Reply to Operatorüberladung  &amp;quot;=&amp;quot; on Fri, 14 Dec 2007 20:44:53 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Code ...</p>
</blockquote>
<p>Das gefällt mir gar nicht.</p>
<pre><code class="language-cpp">struct FLO;
struct DOU {
  double x,y,z;
  DOU ();
  DOU (FLO const&amp;);

};
struct FLO {
  float x,y,z;
  FLO ();
  explicit FLO (DOU const&amp;);
};

DOU::DOU (FLO const&amp; rhs) : x(rhs.x), y(rhs.y), z(rhs.z) {}

FLO::FLO (DOU const&amp; rhs) : x(rhs.x), y(rhs.y), z(rhs.z) {}
</code></pre>
<p>Zuweisungsoperatoren braucht man dann gar nicht, denn der Compiler erstellt sie für die Objekte derselben Klasse eh, und im Zweifelsfall wird konvertiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420782</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420782</guid><dc:creator><![CDATA[*john 0]]></dc:creator><pubDate>Fri, 14 Dec 2007 20:44:53 GMT</pubDate></item><item><title><![CDATA[Reply to Operatorüberladung  &amp;quot;=&amp;quot; on Sat, 15 Dec 2007 13:44:52 GMT]]></title><description><![CDATA[<p>Folgendes geht dann aber nicht mehr:</p>
<pre><code class="language-cpp">FLO f;
DOU d;

f = d;
</code></pre>
<p>Der Compiler würde vermutlich versuchen, den implizit generierten op= von FLO zu verwenden und vorher aus d ein FLO zu machen - was nicht geht wenn die Ctoren explicit sind. Also müsste man stattdessen folgendes schreiben:</p>
<pre><code class="language-cpp">f = FLO(d);
</code></pre>
<p>was widerum bedeutet, dass man erst den Umwandlungs-Ctor aufruft und danach den op=. Der op= für den jeweils anderen Typen würde den einen Funktionsaufruf einsparen - aber natürlich soll man erst anfangen zu optimieren wenn einem der profiler das gesagt hat <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1420952</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420952</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Sat, 15 Dec 2007 13:44:52 GMT</pubDate></item><item><title><![CDATA[Reply to Operatorüberladung  &amp;quot;=&amp;quot; on Sat, 15 Dec 2007 15:49:59 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Folgendes geht dann aber nicht mehr:</p>
<pre><code class="language-cpp">FLO f;
DOU d;

f = d;
</code></pre>
</blockquote>
<p>Ja, das ist gewollt, da dabei Informationsverlust auftreten kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1421007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1421007</guid><dc:creator><![CDATA[*john 0]]></dc:creator><pubDate>Sat, 15 Dec 2007 15:49:59 GMT</pubDate></item></channel></rss>