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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |