【发布时间】:2014-08-06 13:45:32
【问题描述】:
以下内容无法编译,但有可能吗?
IDefaultHelp = interface
['{6997FC42-7481-4CDA-940A-0351071266C7}']
function GetTemplate: TXMLDocument;
end;
TDefaultHelp = class(TInterfacedObject, INodeHelp)
class function GetTemplate: TXMLDocument; static; <<-- error
end;
我不想实例化实现对象。
有没有办法实现接口而不必Create 一个实际的类?
【问题讨论】:
-
如果没有实例,谁来跟踪引用计数?
-
当然,您可能不想要引用计数。因此,如果您正在寻找静态方法的接口,请查看默认比较器接口是如何在泛型单元中实现的。函数指针的记录按 vtable 顺序排列。
-
是的,这对于非引用接口是可能的;您仍然需要一个实例(没有实例就没有接口),但您可以将实例声明为常量,因此您无需在运行时创建实例。
标签: delphi interface delphi-xe2