Nein, das sind zwei verschiedene Operatoren. Die Funktion operator void*
ist eine Typumwandlungsfunktion, während operator()
ein Funktionsaufrufoperator ist.
Der erste wird verwendet, wenn Sie eine Instanz von Foo
in eine void*
konvertieren möchten, wie z. B.
Die Sekunde wird als Funktion verwendet:
%Vor% Diese Funktion definiert, was passiert, wenn das Objekt in einen void-Zeiger konvertiert wird. Hier wird die Adresse ausgewertet, auf die das Mitglied ptr
zeigt.
Es ist manchmal nützlich, diese Umwandlungsfunktion zu definieren, z. für boolsche Bewertung des Objekts.
Hier ist ein Beispiel:
%Vor%Die Ausgabe ist:
%Vor%Siehe auch:
Es ist ein Typkonvertierungsoperator. Es wird immer dann verwendet, wenn ein Objekt der Klasse Foo
in void*
umgewandelt (umgewandelt) wird. Es ist in der Tat nicht das gleiche wie void* operator()
.
Tags und Links c++