Есть классы:
Код:
type TClassA = class
a:integer;
end;
type TClassB = class(TClassA)
b:integer;
end;
Есть динамический массив и переменные:
Код:
var
DynArray:array of TClassA;
b,c,d:TClassB;
Есть код:
Код:
SetLength(DynArray, 3);
DynArray[0] := b;
DynArray[1] := c;
DynArray[2] := d;
Теперь вопрос: массив у меня типа TClassA, я записываю в него переменные типа TClassB. Компилятор такое допускает, поскольку класс B наследник класса A, но есть сомнения, что память для массива выделяется исходя из размера класса А и я рискую затереть часть данных из-за перекрытия ячеек памяти, ввиду того что переменные типа TClassB занимают на 4 байта больше памяти чем переменные типа TClassA. Так ли это?