Moin!
Ich habe eine numerische Klasse programmiert.
Gibt es nun eine Möglichkeit den operator= so zu definieren, dass ich eine double-variable mit meiner klasse setzen kann? denn operator= muss ja immer klassenelement sein. =-Operator wärepraktisch, weil ich verschiedene numerische typen verwenden möchte, und dann nicht je nach typ, komische funktionen aufrufen muss.
operator= für double.operator= double
-
-
Also ich versteh dein Problem nicht 100%ig. Ein Beispiel wäre hilfreich.
Wenn ich es richtig verstanden habe soll sowas möglich sein:
Variante 1 ist ja klar. Der Operator muss als Methode implementiert sein.
Für Variante 2 musst du eine globale Funktion definieren, die ein double und YourClass übergeben bekommt. Darin kannst du dann die nötigen Operationen ausführen. -
aber diese Funktion kann nicht operator= sein, oder?
naja, dann werd ich so machen, habe eine methode double_value in der klasse, also temp = inst.double_value();
schön wärs gewesen, danke! -
-
operator= must be a non-static member-function.
Mist, geht auch nicht, wenn ich als Rückgabetyp nicht double& sondern double oder void nehme, und es geht auch nicht, egal ob ich const oder nicht mache.
Warum müssen diese Compiler immer genau mit dem Übereinstimmen, was in den Büchern steht!
Achso:
Was macht es für einen Sinn double a_dbl und nicht double& a_dbl zu übergeben, wenn man doch eine Übergebene Referenz setzen möchte? -
Ja natürlich macht das Sinn, ich hab das nur schnell hingeklatscht ohne nachzudenken.
Warum ich das so nicht überladen darf versteh ich jetzt nicht 100%ig. Aber im Prinzip ist Operatorüberladung nur syntaktischer Zucker, also bekommst du es auch ohne hin...