Was bedeutet Operator void * ()?

7

Ich habe gegoogelt, aber keine klare Antwort gefunden. Beispiel:

%Vor%

Ich verstehe was void* operator() ist. Ist der obige Operator in einer anderen Syntax identisch? Wenn nicht, was ist es? Und wie kann ich diesen Operator verwenden, um ptr zu erhalten?

    
GuLearn 13.08.2013, 17:46
quelle

3 Antworten

15

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.

%Vor%

Die Sekunde wird als Funktion verwendet:

%Vor%     
Some programmer dude 13.08.2013, 17:49
quelle
5

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:

moooeeeep 13.08.2013 17:49
quelle
0

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() .

    
Violet Giraffe 13.08.2013 17:49
quelle

Tags und Links