System.TInterfacedObject

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

System.TObjectTInterfacedObject

Delphi

TInterfacedObject = class(TObject, IInterface)

C++

class PASCALIMPLEMENTATION TInterfacedObject : public TObject

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
class public
System.pas
systobj.h
System System

Beschreibung

TInterfacedObject ist eine Basis für einfache Klassen, für die eine grundlegende IInterface-Implementierung erforderlich ist.

TInterfacedObject ist eine Thread-sichere Basisklasse für Delphi-Objekte, die Schnittstellen unterstützen. TInterfacedObject stellt die grundlegende Funktionalität für die Refernzzählung bereit, mittels derer abgeleitete Klassen sowohl in Delphi- als auch in C++ verwendet werden können.

Anmerkung:  In Delphi unterstützen Variablen vom Typ TInterfacedObject die dynamische Bindung. Das bedeutet, dass ihnen zur Laufzeit eine Instanz eines ihrer Nachkommen zugewiesen werden kann. Der Grund dafür ist, dass TInterfacedObject die Methode QueryInterface implementiert, die zur Laufzeit abfragt, ob das instantiierte Objekt die erforderliche Schnittstelle unterstützt. In diesem Fall kann das abgeleitete Objekt der Variable zugewiesen werden. Ohne die Unterstützung durch QueryInterface würde eine solche Zuweisung einen Compilierfehler hervorrufen.

In Delphi haben von TInterfacedObject abgeleitete Klassen keine Klassengeneratoren oder eine CLSID. Daher können sie nur durch Aufruf des Konstruktors instantiiert werden.

TInterfacedObject implementiert nicht die Methoden der C++ Version von IUnknown oder IInterface. Wenn C++ Wrapper für in C++ geschriebene Nachkommen von TInterfacedObject verwendet werden, stellt dies kein Problem dar. Wenn Sie jedoch C++ Nachkommen von TInterfacedObject erzeugen, müssen Sie die Implementierung von IUnknown selbst bereitstellen. Die entsprechenden Informationen finden Sie unter Erstellen von Klassen, die IUnknown unterstützen (nur C++ Produkte).

Siehe auch