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
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal