sizeof(Funktionszeiger) == 8
-
Hallo,
Gegeben seien zwei Funktionszeiger pfa und pfb. pfa zeigt auf eine ungebundene Funktion, pfb zeigt auf eine Funktion innerhalb einer Klasse.
sizeof(pfa) == 4, was nicht weiter überrascht. Ist halt ein Zeiger.
sizeof(pfb) == 8 und das kann ich mir nicht erklären.Was wird in einem Funktionszeiger auf eine Klassenfunktion denn noch gespeichert ausser dem Zeiger auf die Funktion?
(Compiler: gcc)
-
Ich zitiere mal Modernes C+ Design:
Ein Pointer auf eine Member-Funktion belegt nicht wie ein Pointer auf eine Funktion nur vier Byte. Pointer auf Member-Funktionen sind vielmehr gekennzeichnete Einheiten, bei denen die mehrfache virtuelle Vererbung und virtuelle oder nicht virtuelle Funktionen eine Rolle spielen.
(Seite 176)
-
KPC schrieb:
Ich zitiere mal Modernes C+ Design:
Ein Pointer auf eine Member-Funktion belegt nicht wie ein Pointer auf eine Funktion nur vier Byte. Pointer auf Member-Funktionen sind vielmehr gekennzeichnete Einheiten, bei denen die mehrfache virtuelle Vererbung und virtuelle oder nicht virtuelle Funktionen eine Rolle spielen.
(Seite 176)
Vielen Dank, hat sich damit geklärt!