delphi – 类之间的循环引用
发布时间:2020-12-15 09:20:50 所属栏目:大数据 来源:网络整理
导读:我需要开发下一个图表类: 我写了代码,但是,有循环单元引用的问题. XmlFileManager类包含: unit XmlFileManager;interfaceuses xmldom,XMLIntf,msxmldom,XMLDoc,SysUtils,DateUtils,Classes,Dialogs,XmlEnpManager;type TXmlFileManager = class private [.
|
我需要开发下一个图表类:
我写了代码,但是,有循环单元引用的问题. XmlFileManager类包含: unit XmlFileManager;
interface
uses
xmldom,XMLIntf,msxmldom,XMLDoc,SysUtils,DateUtils,Classes,Dialogs,XmlEnpManager;
type
TXmlFileManager = class
private
[...]
xmEnp: TXmlEnpManager;
xmEnpInicial: TXmlEnpManager;
xmEnpFinal: TXmlEnpManager;
[...]
end.
抽象类,XmlNodeManager: unit XmlNodeManager;
interface
uses
xmldom,XmlFileManager;
type
TXmlNodeManager = class
protected
{ sgy alias para strategy }
sgyIterator: Integer;
sgyContext: TXmlFileManager;
sgyAttributes: TStringList;
sgyNode: IXMLNode;
[...]
end.
和XmlEnpManager具体类: unit XmlEnpManager;
interface
uses
xmldom,XmlNodeManager;
type
TXmlEnpManager = class (TXmlNodeManager)
public
constructor Create(aContext: TXmlFileManager); overload; override;
constructor CreateInicial(aContext: TXmlFileManager); reintroduce; overload;
constructor CreateFinal(aContext: TXmlFileManager); reintroduce; overload;
[...]
end.
构建失败并出现错误:
任何想法如何解决这个问题? 解决方法
将TXmlFileManager和TXmlNodeManager放在同一单元和相同类型的部分中,然后确保类型部分以此类开头转发:TXmlNodeManager = class;
请参阅官方文档:Forward Declarations and Mutually Dependent Classes. unit XmlFileManagerAndXmlNodeManager;
interface
uses
xmldom,[...]
type
TXmlNodeManager = class;
TXmlFileManager = class
private
[...]
xmEnp: TXmlEnpManager;
xmEnpInicial: TXmlEnpManager;
xmEnpFinal: TXmlEnpManager;
[...]
TXmlNodeManager = class
protected
sgyIterator: Integer;
sgyContext: TXmlFileManager;
sgyAttributes: TStringList;
sgyNode: IXMLNode;
[...]
end.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
