Grundsätzlich ist beim Überladen Folgendes zu beachten:

Der Name einer Operator-Funktion setzte sich wie im obigen Beispiel aus dem Schlüsselwort operator und dem sogenannten Operator-Zeichen zusammen.
Da es sich bei Operator-Funktionen um Funktionen im eigentlichen Sinne handelt, können diese auch aufgerufen und eingesetzt werden wie "gewöhnliche" Funktionen auch:

  void f(complex a, complex b)
  {
      complex c = a + b;              // Kurzform
      complex d = operator+(a,b);     // expliziter Funktionsaufruf
  }