Warum ist der int operator 2 mal drin?
Es werden die zwei Operatoren () und = überschrieben.
int ist kein Operator, sondern ein Daten Type.
int value = hysterese.doValue(4711); // ohne überschriebenen Operator
int value = hysterese(4711); // nutzt den überschriebenen () Operator
int value = hysterese = 4711; // nutzt den überschriebenen = Operator
Alle 3 Varianten machen im Grunde das gleiche.
Die Operatorenüberschreibung erlaubt hier alternative/verkürzte Schreibweisen.