Hi All,
I have the following class:
type
generic TVector<T> = class
private type
TDataType = array of T;
private
FData: TDataType;
... ...
public
... ...
function Slice(APos: Integer = -1; ACount: Integer = -1): TDataType;
end;The Slice() method return a portion of the data as a dynamic array.
My question is, as I define TDataType as PRIVATE type, why it is still usable outside of the class? In the main program I did:
type
TIntVector = specialize TVector<Integer>;
var
iv: TIntVector;
ia: array of Integer;
begin
iv := TIntVector.Create;
... ...
ia := iv.Slice;
end.This will assign a TDataType (is it TVector$TDataType or TIntVector$TDataType? I don't know) to an "array of Integer". Why this assignment works?
i.e. how does the type system work?!
Best Regards,
Xiangrong
