Unary Plus war in C vorhanden, wo es absolut nichts tat (ähnlich wie das auto
Schlüsselwort). Um es nicht zu haben, hätte Stroustrup eine unbegründete Inkompatibilität mit C einführen müssen.
Sobald es in C ++ war, war es natürlich, eine Überladungsfunktion zuzulassen, genau wie ein unäres Minus, und Stroustrup hätte sie möglicherweise aus diesem Grund eingeführt, wenn sie nicht bereits vorhanden wäre.
Es bedeutet also nichts. Es kann als eine Art Dekoration verwendet werden, um die Dinge symmetrischer aussehen zu lassen, beispielsweise mit +1,5 im Gegensatz zu -1,5. In C ++ kann es überladen sein, aber es wird verwirrend sein, wenn operator+()
etwas getan wird. Denken Sie an die Standardregel: Wenn Sie arithmetische Operatoren überladen, tun Sie Dinge wie die int
s.
Wenn Sie nach einem Grund suchen, warum es dort ist, finden Sie etwas über die frühe Geschichte von C. Ich vermute, es gab keinen guten Grund, da C nicht wirklich entworfen wurde. Betrachten Sie das nutzlose auto
Schlüsselwort (vermutlich im Gegensatz zu dem static
, das jetzt in C ++ 0x recycelt wird) und das entry
Schlüsselwort, das nie etwas getan hat (und später in C90 weggelassen wurde). Es gibt eine berühmte E-Mail, in der Ritchie oder Kernighan sagen, dass es bereits drei Installationen mit Tausenden von Codezeilen gab, die sie nicht brechen wollten, als sie feststellten, dass die Priorität des Bedieners Probleme hatte.