System.TInterfacedObject

De RAD Studio API Documentation
Aller à : navigation, rechercher

System.TObjectTInterfacedObject

Delphi

TInterfacedObject = class(TObject, IInterface)

C++

class PASCALIMPLEMENTATION TInterfacedObject : public TObject

Propriétés

Type Visibilité  Source Unité  Parent
class public
System.pas
systobj.h
System System

Description

TInterfacedObject est une base pour les classes simples qui ont besoin d'une implémentation IInterface de base.

TInterfacedObject est une classe de base adaptée aux threads pour les classes Delphi supportant des interfaces. TInterfacedObject fournit la fonctionnalité de base de comptage de références rendant les classes dérivées utiles à la fois dans le code Delphi et dans le code C++.

Remarque : Dans Delphi, les variables déclarées de type TInterfacedObject bénéficient de la liaison dynamique, c'est-à-dire qu'une instance d'une classe descendante peut, à l'exécution, être affectée à cette variable. En effet, TInterfacedObject implémente QueryInterface, qui est appelée lors de l'exécution pour demander si l'objet instancié gère l'interface demandée. Si c'est le cas, l'objet descendant est affecté à la variable. Sans le support de QueryInterface, une telle assignation produirait une erreur à la compilation.

Dans Delphi, un descendant de TInterfacedObject n'a pas de fabricant de classes ni de CLSID. Cela signifie qu'il ne peut être instancié qu'en appelant un constructeur.

TInterfacedObject n’implémente pas les méthodes de la version C++ de IUnknown ou de IInterface. Ce n'est pas un problème lors de l'utilisation d'enveloppes C++ pour les descendants de TInterfacedObject écrits en Delphi. Toutefois, si vous créez des descendants C++ de TInterfacedObject, vous devez fournir votre propre implémentation de IUnknown. Pour des détails sur la manière de procéder, voir Création de classes gérant IUnknown (fournies uniquement avec les produits C++).

Voir aussi