使用:Delphi XE2
一个类的字段是另一个类。
在该字段的过程中是否可以引用容器类?
Type TClassA = class
procedure ClassAMethod;
end;
Type TClassB = class
ClassA : TClassA;
end;
procedure TClassA.ClassAMethod;
begin
// is it possible to get a reference to the
// owning ClassB object here?
end;
答案 0 :(得分:8)
没有。这两个对象之间没有固有的联系。如果包含的对象需要引用容器,则需要为包含的类提供对该对象的引用。将其作为构造函数参数传递,例如:
constructor TClassB.Create;
begin
inherited;
ClassA := TClassA.Create(Self);
end;
如果这些对象来自TComponent
,那么您可以使用Owner
属性。