【发布时间】:2021-06-21 16:44:01
【问题描述】:
如果我理解正确,interface 部分对其他单位可见,implementation 部分仅在当前的.pas 文件中可见。
我有两个类,类 TA 应该对外部可见,其他类 TB 不应该,但我需要 TA 中的 TB 类型的字段。
interface
type
TA = class
//something
B : TB;
end;
//something
implementation
type
TB = class
//something
end;
它不是那样工作的。我也不能使用前向声明。有什么办法吗?
或者,有没有办法在interface 部分声明TB,但将其设为私有?
【问题讨论】:
-
为什么
TA需要一个引用尚未定义的类型的字段?这里的目标是什么? -
你有这个用例吗?
-
如果您在界面部分提到 TB,那么您将其向公众开放。必须在界面中知道。使用@RemyLebeau 接口解决方案。在这种情况下,您只是打开接口,而不是它的实现。
标签: class oop delphi visibility pascal