|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Классы в динамических массивах
Есть классы:
Код:
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. Так ли это? |