3

使用:德尔福 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;
4

1 回答 1

8

不,这两个对象之间没有内在联系。如果包含的对象需要引用容器,则需要为包含的类提供对该对象的引用。将其作为构造函数参数传入,例如:

constructor TClassB.Create;
begin
  inherited;
  ClassA := TClassA.Create(Self);
end;

如果这些对象来自TComponent,那么您也许可以为此使用该Owner属性。

于 2013-05-09T19:37:26.233 回答