Пример - Vectors.Vector
## Код:
```
MyRec = RECORD
   i1: INTEGER;
END;
MyVec = RECORD (Vectors.Vector)
   data*: POINTER TO ARRAY OF MyRec;
END;
```

## Код:
```
vec.Init(10);
Log.String("Pointer Initial Size,Capacity="); Log.Int(vec.size); Log.Int(vec.capacity); Log.Ln;
mr.i1 := 109; vec.Set(9, mr);
mr.i1 := 110; vec.Set(10, mr);
mr.i1 := 111; vec.Set(11, mr);
Log.String("Pointer To Vector Size,Capacity="); Log.Int(vec.size); Log.Int(vec.capacity); Log.Ln;
FOR j := 0 TO vec.size-1 DO
   Log.Int(j); Log.String(" ="); Log.Int(vec.data[j].i1); Log.Ln;
END;
```

Вектор при необходимости расширяется (в примере до size=12).
Доступ к элементам осуществляется штатным образом, а не через переопределенный оператор operator[].

Механизм работы основан на реаллокировании при необходимости MyVec.data. Используются метаданные, т.к. надо создавать указатель на массив POINTER TO ARRAY OF MyRec из базового класса.