3
我有什麼似乎是一個非常基本的問題,但我只是想確定。指針與TType
這兩者之間有區別嗎?
var ClassArray: array of TMyClass;
constructor TMyClass.Create;
begin
SetLength(ClassArray, Length(ClassArray)+1);
ClassArray[Length(ClassArray)-1]:=Self;
end;
begin
for i:=0 to x do
ClassArray[i].MyProcedure;
和
var PointerArray: array of Pointer;
constructor TMyClass.Create;
begin
SetLength(PointerArray, Length(PointerArray)+1);
PointerArray[Length(PointerArray)-1]:=Self;
end;
begin
for i:=0 to x do
TMyClass(PointerArray[i]).MyProcedure;
因爲從它的工作時,我與它玩耍的樣子,唯一不同的是,我不能直接在PointerArray查看元素(如只顯示地址)。
謝謝
與您的問題無關 - 您需要在'TMyClass.Create()'內部使用'High()'而不是'Length()'。您試圖將您的'Self'指針存儲到錯誤的數組索引中。 –
@ RemyLebeau-TeamB是的,我通常使用'PointerArray [Length(PointerArray)-1]:= Self;'。順便說一句,這與速度方面的High()有什麼不同? –