class X {
...
public:
void operator () ();
// Operator "()" ohne Parameter deklarieren
};
Folgender Aufruf wäre dann möglich:
void f()
{
X a; // Objekt der Klasse
X anlegen
a(); // Hier wird NICHT die
Funktion a() aufgerufen,
// sondern der Operator () für das Objekt a !!!
};
Diese Schreibweise kann sehr leicht zu Verwirrung führen, da man a()
eigentlich als den Aufruf einer globalen Funktion interpretieren würde.
In manchen Klassenbibliotheken wird jedoch von dieser Möglichkeit
des Überladens des Function call-Operators Gebrauch gemacht.
Bei Bedarf sei auf das Literaturverzeichnis verwiesen,
wir wollen an dieser Setlle nicht weiter darauf eingehen.