Wie, um eine überlastung "operator %" in c++

Ich möchte, um eine überlastung der % - operator in c++, um zu vermeiden, dass die Bearbeitung einer riesigen block von code von hand. Ich versuchte dies:

static float operator %(const float& left, const float& right);

In meinem Kopf, aber es wird nicht funktionieren, weil "keine Memberfunktion operator benötigt einen parameter mit der Klasse oder enum-Typ".
Ich bin relativ neu in C++, was soll ich tun?

  • Sie können nicht die Operatoren überladen für fundamentale Typen.
  • Kannst du bitte posten, was Sie tun würden, innerhalb dieser Funktion? Ich bin wirklich wollen, um zu lernen, wie die modulo-operation auf Schwimmern!
  • Tja, das ist traurig. Einfach nur neugierig, was ist der Grund?
  • Ich fast wollte nur beantworten mit "Weil C++ ist nicht Ruby, aber vielleicht Sie vielleicht nicht bekommen, dass die Referenz. 🙂
  • Der Grund ist, um zu verhindern, dass Menschen genau das tun, was Sie zu tun versuchen. Stell dir vor, wenn ich überlastet operator+ auf Ganzzahlen durchführen, Vermehrung statt. Jeder, einschließlich meiner header-Datei mit, dass in der definition wäre es in für eine wilde Fahrt.
  • Das ist es, was dachte ich auch. Ruby ist mein Lieblings-nicht-C++ - Sprache für diesem Grund.
  • Das ist genau die Art von Sache, die Ruby erlaubt (by design), per monkey-patching. 🙂 C++ -, wieder von design, nicht monkey-patching. 😛
  • Wäre es nicht eine Mehrdeutigkeit, Konflikt, solange ich nicht mit namespace screwMath ? Und es gibt nicht mal eine defenition für Schwimmer%schweben ich bin zu überschreiben! Aber okay, muss google für Ruby nun..
  • Sie weiß, es ist fmod im <cmath>, das genau das tut, was Sie wollen?
  • "Vermeiden Sie das Bearbeiten der code von hand" - die meisten C++ - IDE ' s haben eine leistungsstarke Suchen&Ersetzen-Optionen. Möglicherweise müssen Sie schreiben ein regex, obwohl.

InformationsquelleAutor ArniBoy | 2011-08-25
Schreibe einen Kommentar