var a,b:
VectorInt;
bvec:
TVecInt;
begin
a := VectorInt.Create(true);
//create from object cache via CreateIt
//this constructor can be omitted, because it is implicitly called
//the first time that the variable is used.
//However:
b := VectorInt.Create(10);
//Similar to
bvec := TVecInt.Create;
try
bvec.Size(10);
finally
bvec.Free;
//b is freed on the exit from the procedure
end;
end;