Tabellen mit virtuellen Funktionen

[Das feature, das dieser Seite zugeordnet ist, benutzerdefinierte Datei- und Streamhandler, ist ein Legacyfeature. Es wurde von MediaStreamSource-Klasseersetzt. MediaStreamSource-Klasse wurde für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, MediaStreamSource-Klasse anstelle benutzerdefinierten Datei- und Streamhandlerszu verwenden. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, um die neuen APIs zu verwenden, falls möglich umgeschrieben werden.]

Eine virtuelle Funktionstabelle ist ein Array von Zeigern auf die Methoden, die ein Objekt unterstützt. Wenn Sie C verwenden, wird ein Objekt als Struktur angezeigt, deren erstes Element ein Zeiger auf die virtuelle Funktionstabelle ist (lpVtbl); d. h. das erste Element verweist auf ein Array, das Funktionszeiger enthält. Die Methoden verwenden alle einen Zeiger auf die Funktionstabelle als ersten Parameter. Daher ruft das folgende Beispiel die Read-Methode eines pStream--Objekts auf:

pStream->lpVtbl->Read(pStream, parameters) 
 

In C+ + ist der Zeiger auf die virtuelle Funktionstabelle die dieses Zeigers implizit. Das folgende Beispiel entspricht dem vorherigen Beispiel bei Verwendung von C+ +:

pStream->Read(parameters)