很奇怪的问题,有人发现过吗?
PYuNode = ^TYuNode;
TYuNode = class(TObject)
private
FLeft: PYuNode;
FRight: PYuNode;
Public
function AddChild(Node: PYuNode): Boolean;
End;
function TYuNode.AddChild(Node: PYuNode): Boolean;
var
LastChild: PYuNode;
begin
Node^.FLeft := @Self; // 在此(self = N1)吗?
Result := True;
end;
主程序如下:
var
N1,N2: TYuNode;
N1.AddChlid(N2);
发现如下问题:@N1 = $12F528 而 AddChlid内 @Self = $12F500