<?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 fluch oder segen]]></title><description><![CDATA[<p>was denkt ihr, operator überladung fluch oder segen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/262437/operator-überladung-fluch-oder-segen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 06 Sep 2026 16:13:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/262437.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 05 Mar 2010 21:51:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to operator überladung fluch oder segen on Fri, 05 Mar 2010 21:51:23 GMT]]></title><description><![CDATA[<p>was denkt ihr, operator überladung fluch oder segen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1864994</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864994</guid><dc:creator><![CDATA[juicyFruit]]></dc:creator><pubDate>Fri, 05 Mar 2010 21:51:23 GMT</pubDate></item><item><title><![CDATA[Reply to operator überladung fluch oder segen on Fri, 05 Mar 2010 21:57:24 GMT]]></title><description><![CDATA[<p>Segen.<br />
Wenn richtig eingesetzt erhöht es die Lesbarkeit des Codes deutlich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1864996</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864996</guid><dc:creator><![CDATA[Rafunzel]]></dc:creator><pubDate>Fri, 05 Mar 2010 21:57:24 GMT</pubDate></item><item><title><![CDATA[Reply to operator überladung fluch oder segen on Fri, 05 Mar 2010 22:08:00 GMT]]></title><description><![CDATA[<p>Warum sollte es Fluch sein? Und wird das hier der neue Flamewar-Thread?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1864999</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864999</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 05 Mar 2010 22:08:00 GMT</pubDate></item><item><title><![CDATA[Reply to operator überladung fluch oder segen on Fri, 05 Mar 2010 22:14:50 GMT]]></title><description><![CDATA[<p>Segen <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="😉"
    /><br />
Gerade Aus -und Eingabeoperatoren sowie Rechenoperatoren machen die spätere Verwendung von z.B Vectorklassen oder Klassen mit komplexen Datenkapselungen<br />
sehr einfach. Man kann sich zwar immer auch irgendwelche Funktionen schreiben,<br />
die dieses oder jenes machen. Aber ich bevorzuge dann durchaus mal lieber<br />
eine Operatorüberladung, wo se angebracht ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1865004</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1865004</guid><dc:creator><![CDATA[BasicMan01]]></dc:creator><pubDate>Fri, 05 Mar 2010 22:14:50 GMT</pubDate></item><item><title><![CDATA[Reply to operator überladung fluch oder segen on Fri, 05 Mar 2010 22:21:54 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Warum sollte es Fluch sein?</p>
</blockquote>
<p>weil es evtl. schwerer zu verstehen ist, bzw. falsch überladen missverständnisse auftreten können? man muß schon relativ genau wissen, welcher operator auf welche klasse angewendet wird, stelle mir das schon bischen schwerer vor <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1865005</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1865005</guid><dc:creator><![CDATA[noobLolo]]></dc:creator><pubDate>Fri, 05 Mar 2010 22:21:54 GMT</pubDate></item><item><title><![CDATA[Reply to operator überladung fluch oder segen on Fri, 05 Mar 2010 22:28:21 GMT]]></title><description><![CDATA[<p>noobLolo schrieb:</p>
<blockquote>
<p>weil es evtl. schwerer zu verstehen ist, bzw. falsch überladen missverständnisse auftreten können? man muß schon relativ genau wissen, welcher operator auf welche klasse angewendet wird, stelle mir das schon bischen schwerer vor <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
</blockquote>
<p>Und Funktionen kann man nicht falsch benennen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1865007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1865007</guid><dc:creator><![CDATA[YASC]]></dc:creator><pubDate>Fri, 05 Mar 2010 22:28:21 GMT</pubDate></item><item><title><![CDATA[Reply to operator überladung fluch oder segen on Fri, 05 Mar 2010 22:28:46 GMT]]></title><description><![CDATA[<p>noobLolo schrieb:</p>
<blockquote>
<p>Nexus schrieb:</p>
<blockquote>
<p>Warum sollte es Fluch sein?</p>
</blockquote>
<p>weil es evtl. schwerer zu verstehen ist, bzw. falsch überladen missverständnisse auftreten können? man muß schon relativ genau wissen, welcher operator auf welche klasse angewendet wird, stelle mir das schon bischen schwerer vor <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
</blockquote>
<p>Das muss man bei normalen Funktionen auch wissen. Außerdem überlädt man Operatoren ja nicht irgendwie. Es ist selbstverständlich, dass man mit <code>operator []</code> auf die Elemente eines <code>std::vector</code> zugreifen kann und dass Zeigerersetzer wie ein Iterator oder <code>std::auto_ptr</code> über <code>*</code> und <code>-&gt;</code> verfügen.<br />
Bei sowas wie boost.spirit muss man natürlich genau wissen, wofür welcher Operator da ist. Das lohnt sich aber, weil die Lesbarkeit deutlich verbessert wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1865008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1865008</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Fri, 05 Mar 2010 22:28:46 GMT</pubDate></item><item><title><![CDATA[Reply to operator überladung fluch oder segen on Fri, 05 Mar 2010 22:57:13 GMT]]></title><description><![CDATA[<p>TyRoXx schrieb:</p>
<blockquote>
<p>Bei sowas wie boost.spirit muss man natürlich genau wissen, wofür welcher Operator da ist. Das lohnt sich aber, weil die Lesbarkeit deutlich verbessert wird.</p>
</blockquote>
<p>Boost.Spirit halte ich für sehr grenzwertig. Sicher mag es noch witzig sein, es ähnlich zur EBNF notieren zu können, wenn du dann aber noch Actions reinpflanzt, verbunden mit Boost.Bind, dann kann ich aber nicht mehr wirklich viel von der Lesbarkeit erkennen <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>Aber Operatorüberladung ist definitiv ein Segen. Ein einfaches aber mächtiges Konzept. Und wie so vieles in C++ ist hier halt wieder die Verantwortung beim Programmierer. Wenn der Programmierer zu dumm ist für die Operatorüberladung, dann sei es halt so. Es ist jedem frei gestellt eine Bibliothek zu nutzen oder nicht. Und in Firmen kann man Richtlinien und Regeln einführen.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1865020</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1865020</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 05 Mar 2010 22:57:13 GMT</pubDate></item><item><title><![CDATA[Reply to operator überladung fluch oder segen on Fri, 05 Mar 2010 23:04:19 GMT]]></title><description><![CDATA[<p>noobLolo schrieb:</p>
<blockquote>
<p>weil es evtl. schwerer zu verstehen ist, bzw. falsch überladen missverständnisse auftreten können? man muß schon relativ genau wissen, welcher operator auf welche klasse angewendet wird, stelle mir das schon bischen schwerer vor <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
</blockquote>
<p>schwerer zu verstehen: nein, wenn man nichts unerwartetes macht. Zahlenartige Klassen, Pointerartige Klassen, Streamklassen wären ohne Operatorüberladung nicht halb so intuitiv zu handhaben, in templates müsste man ständig zwischen eingebauten und userdefinierten Zahlenklassen etc. unterscheiden.</p>
<p>falsch überladen: siehe oben bereits genanntes gleiches Problem bei Funktionsbenamsung. Wer den Code Obfuscation Award gewinnen will kann das auch ohne Operatorüberladung.</p>
<p>Wies schon in meinem <a href="http://magazin.c-plusplus.net/artikel/%DCberladung%20von%20Operatoren%20in%20CPlusPlus%20%28Teil%201%29" rel="nofollow">Artikel</a> steht: do as the ints do, und alles wird gut <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1865022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1865022</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 05 Mar 2010 23:04:19 GMT</pubDate></item><item><title><![CDATA[Reply to operator überladung fluch oder segen on Fri, 05 Mar 2010 23:23:32 GMT]]></title><description><![CDATA[<p>Natürlich kann man mit Operatorüberladung Unsinn anstellen. Das trifft aber auch auf etliche andere Sprachmittel auch zu, und reicht für mich nicht aus, um etwas schlecht zu finden. Richtig eingesetzt überwiegen die Vorteile meiner Ansicht nach definitiv.</p>
<p>Dravere schrieb:</p>
<blockquote>
<p>Und wie so vieles in C++ ist hier halt wieder die Verantwortung beim Programmierer. Wenn der Programmierer zu dumm ist für die Operatorüberladung, dann sei es halt so.</p>
</blockquote>
<p>Dem kann ich nur zustimmen. <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="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1865027</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1865027</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 05 Mar 2010 23:23:32 GMT</pubDate></item><item><title><![CDATA[Reply to operator überladung fluch oder segen on Sat, 06 Mar 2010 02:19:04 GMT]]></title><description><![CDATA[<p>Naja.<br />
Wenn ich mir eins davon aussuchen muss, dann Segen.</p>
<p>Allein schon dass man Sachen schreiben kann wie</p>
<pre><code class="language-cpp">some_functor = (boost::bind(yadayadayadayada) == 123);
</code></pre>
<p>Und wie schon mehrfach (sinngemäss) gesagt wurde: es zwingt einen ja keiner Operatoren zu überladen.</p>
<p>Andrerseits denke ich auch, dass jedes zusätzliche Feature einer Sprache, diese schwerer verständlich/überblickbar macht. Wenn ich dran denke wie es da Anfängern geht, die frisch aus der Schule/Uni/FH/... kommen, und in ein &quot;modernes&quot; C++ Projekt geworfen werden ... hmja.</p>
<p>Aber wie gesagt: eher Segen als Fluch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1865046</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1865046</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sat, 06 Mar 2010 02:19:04 GMT</pubDate></item><item><title><![CDATA[Reply to operator überladung fluch oder segen on Sat, 06 Mar 2010 06:10:57 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Und wie schon mehrfach (sinngemäss) gesagt wurde: es zwingt einen ja keiner Operatoren zu überladen.</p>
</blockquote>
<p>Na dann erklär mal wie folgender Code richtig funktionieren kann, wenn keiner (auch std::string und std::vector nicht) gezwungen würde Operatoren zu überladen?</p>
<pre><code class="language-cpp">class KomplexerToast{};
class DerUeberLaden
{
private:
	int i;
	std::string text;
	std::vector&lt;int&gt; vec;
	KomplexerToast t;
};

int main()
{
	DerUeberLaden megaShop;
	DerUeberLaden hyperStore;
	megaShop = hyperStore;
}
</code></pre>
<p>Operatorüberladung ist wie vieles in C++ einfach notwendigerweise so gewachsen.</p>
<p>Dravere schrieb:</p>
<blockquote>
<p>Aber Operatorüberladung ist definitiv ein Segen. Ein einfaches aber mächtiges Konzept. Und wie so vieles in C++ ist hier halt wieder die Verantwortung beim Programmierer. Wenn der Programmierer zu dumm ist für die Operatorüberladung, dann sei es halt so.</p>
</blockquote>
<p>Und du bist natürlich intuitiv von selber drauf gekommen, wie man den assignment operator richtig überläd, ohne jemals von Copy-and-swap und Co gehört zu haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1865049</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1865049</guid><dc:creator><![CDATA[nadann]]></dc:creator><pubDate>Sat, 06 Mar 2010 06:10:57 GMT</pubDate></item><item><title><![CDATA[Reply to operator überladung fluch oder segen on Sat, 06 Mar 2010 09:07:58 GMT]]></title><description><![CDATA[<p>nadann schrieb:</p>
<blockquote>
<p>Und du bist natürlich intuitiv von selber drauf gekommen, wie man den assignment operator richtig überläd, ohne jemals von Copy-and-swap und Co gehört zu haben.</p>
</blockquote>
<p>Ist er bestimmt nicht. Bist du intuitiv drauf gekommen wie die Syntax einer while-Schleife aussieht, wie man Templates benutzt, eine Klasse von einer anderen ableitet, .......... ? Sicher nicht..<br />
Operatorüberladung ist wie vieles andere auch ein Sprachbestandteil von C++, den man erstmal lernen will. Wie bei jedem anderen Sprachmittel auch kann man es schnell syntaktisch richtig machen, weil das nun wirklich nicht schwer ist, kann dann aber noch einiges mehr dazulernen um es auch semantisch richtig zu machen, exceptionsicher, leicht lesbar, erweiterbar. Das ist alles kein großes Hexenwerk und nicht schwerer als andere Dinge auch in C++.<br />
Ich denke, das einzige was einem an der Operatorüberladung wirklich Kopfzerbrechen bereiten könnte ist, dass es ein weiteres feature ist, von denen C++ eh schon so viele hat, und dass damit die Kombinationsmöglichkeiten, die man im Hinterkopf haben sollte noch mehr werden. Das macht den Umfang der möglichen Idiome um einiges größer als vielleicht in anderen Sprachen, aber auch das ist eher ein Segen für die, die immer auf der Suche nach dem richtigen und besseren Werkzeug sind, als es ein Fluch für die Denkfaulen ist <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/1865061</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1865061</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Sat, 06 Mar 2010 09:07:58 GMT</pubDate></item><item><title><![CDATA[Reply to operator überladung fluch oder segen on Sat, 06 Mar 2010 09:16:32 GMT]]></title><description><![CDATA[<p>nadann schrieb:</p>
<blockquote>
<p>Und du bist natürlich intuitiv von selber drauf gekommen, wie man den assignment operator richtig überläd, ohne jemals von Copy-and-swap und Co gehört zu haben.</p>
</blockquote>
<p>Da glaub ich besteht ein kleines Misverständnis wie &quot;korrekt überladen&quot; gemeint war.<br />
Copy &amp; Swap ist ein Idiom, mit dem man mit sehr wenig Aufwand einen exceptionsicheren Assigment-Operator bekommt. Das ist schön - war aber nicht so gemeint. Gemeint war, dass die Operatorüberladung Sinn ergeben soll. Würdest du eine Überladung von &quot;operator +=(size_t)&quot; verstehen, die eigentlich &quot;operator[](size_t)&quot; sein hätte sollen? Ich denke nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1865062</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1865062</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Sat, 06 Mar 2010 09:16:32 GMT</pubDate></item><item><title><![CDATA[Reply to operator überladung fluch oder segen on Sat, 06 Mar 2010 11:24:53 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9960">@pumuckl</a> &amp; l'abra d'or,<br />
Leute, Leute, das geht viel einfacher:</p>
<p>nadann schrieb:</p>
<blockquote>
<p>Dravere schrieb:</p>
<blockquote>
<p>Aber Operatorüberladung ist definitiv ein Segen. Ein einfaches aber mächtiges Konzept. Und wie so vieles in C++ ist hier halt wieder die Verantwortung beim Programmierer. Wenn der Programmierer zu dumm ist für die Operatorüberladung, dann sei es halt so.</p>
</blockquote>
<p>Und du bist natürlich intuitiv von selber drauf gekommen, wie man den assignment operator richtig überläd, ohne jemals von Copy-and-swap und Co gehört zu haben.</p>
</blockquote>
<p>Du bist natürlich intuitiv von selber drauf gekommmen, wie man in einer Programmiersprache eine Funktion zum kopieren eines Objektes schreibt, ohne jemals von Copy-and-swap und Co gehört zu haben.</p>
<p>Wer hatte das letztens schon wieder so schön geschrieben?<br />
&quot;Ein Operator ist nichts anderes als eine Funktion mit <em>syntactic sugar</em>.&quot;</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1865093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1865093</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sat, 06 Mar 2010 11:24:53 GMT</pubDate></item><item><title><![CDATA[Reply to operator überladung fluch oder segen on Sat, 06 Mar 2010 12:34:29 GMT]]></title><description><![CDATA[<p>nadann schrieb:</p>
<blockquote>
<p>...</p>
</blockquote>
<p>Nu wird's aber ein wenig zu trollig. Ich lösche Trollpostings einfach raus, auch wenn dadurch der Gesprächszusammenhang zerstört wird. Schon passiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1865107</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1865107</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 06 Mar 2010 12:34:29 GMT</pubDate></item><item><title><![CDATA[Reply to operator überladung fluch oder segen on Sat, 06 Mar 2010 12:31:03 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>nadann schrieb:</p>
<blockquote>
<p>...</p>
</blockquote>
<p>Nu wird's aber ein wenig zu trollig. Ich lösche Trollpostings einfach raus, auch wenn dadurch der Gesprächszusammenhang zerstört wird.</p>
</blockquote>
<p>Oh, neee! Spielverderber :p</p>
<p>Jetzt wollte ich gerade diesen Code noch reinschreiben:</p>
<pre><code class="language-cpp">struct Test
{
    operator void const*() const
    {
        return 0;
    }
};

typedef void const* (Test::*MemPtr)() const;

int main()
{
    MemPtr ptr = &amp;Test::operator void const*;

    return 0;
}
</code></pre>
<p>In welchem Zusammenhang sage ich jetzt aber halt nicht mehr <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1865109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1865109</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sat, 06 Mar 2010 12:31:03 GMT</pubDate></item></channel></rss>