Operatorenüberladen
-
Man kann in C++ ja Operatoren, wie z.B. das + überladen.
Kann man es auch so überladen, dass trotzdem konstante Werte übergeben werden?
Also so überladen, dass z.B. (5 + 10) 30 ergibt?int operator+(const int a, const int b) { return (a+b) * 2; }scheint ja nicht zu funktionieren ... da soll man eine Klasse oder ein Enumerationstypen angeben; kann man das umgehen? Liegt das daran, dass ansonsten eine Rekursion in operator+ stattfinden würde?
Kann man auch neue Operatoren definieren, wie z.B. (5 v 6) oder soetwas in der Art?
-
C-reator schrieb:
kann man das umgehen?
Nein. De Standard verbietet Überladungen von Operatoren, deren Parameter nur built-in Typen sind.
Liegt das daran, dass ansonsten eine Rekursion in operator+ stattfinden würde?
das liegt vor allem daran, dass man sich sonst auf garnichts mehr verlassen könnte und dass es in 95% der Fälle einfach Schwachsinn wäre, soetwas zu tun.