delphi类的相互引用

在写c++的接口时可以将两个相互引用的类放在两个.h文件中,然后将这个接口翻译到delphi时,放在两个文件里就不可能了。只能放在同一个unit中。并且要将这两个类都放在同一个type下面进行定义,当前面一个类要使用后面一个类时,需要在前面一个类的前面放置一个前置声明,并且前置声明只能是IVariantMap = class;这种格式而不能是IVariantMap = class(TObject);形式。

 

unit XXX_variant; interface use XXX,XXX; type IVariantMap = class; IVariantArray = class; IVariant = class(CBaseSerial) public function SetMap(val: IVariantMap): Boolean; virtual; stdcall; abstract; function SetArray(val: IVariantArray): Boolean; virtual; stdcall; abstract; // XXXX end; IVariantArray = class public function GetElement(index: Cardinal): IVariant; virtual; stdcall; abstract; //XXXX end; IVariantMap = class public function GetValue(const name: PChar): IVariant; virtual; stdcall; abstract; //XXXX end;

你可能感兴趣的:(c,function,Class,Delphi)