русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Внутрішнє представлення об’єктів


Дата додавання: 2014-04-22; переглядів: 1053.


Внутрішній формат даних об’єкта нагадує внутрішній формат запису. Поля об’єкту записуються в порядку їх опису як неперервна послідовність змінних. Будь-яке поле, успадковане від батьківського типу, записується перед новими полями, визначеними в дочірньому типі.

Якщо об’єктний тип визначає віртуальні методи, конструктори чи деструктори, то компілятор розміщає в ньому додаткове поле даних. Це 16-бітове поле, що називається полем таблиці віртуальних методів, використовується для запам’ятовування зміщення таблиці віртуальних методів в сегменті даних. Поле таблиці віртуальних методів розміщується безпосередньо після звичайних полів об’єктного типу. Якщо об’єктний тип успадковує віртуальні методи, конструктори чи деструктори, то він успадковує і поле VMT, завдяки чому додаткове поле таблиці віртуальних методів не розміщається.

Ініціалізація поля таблиці віртуальних методів екземпляра об’єкта здійснюється конструктором (чи конструкторами) об’єктного типу. Програма ніколи не ініціалізує поле таблиці віртуальних методів явно і не має до нього доступу.

Наступний приклад ілюструє представлення в сегменті даних об’єктів типів TStudent і TStudent1.

 


<== попередня лекція | наступна лекція ==>
Динамічні методи | Таблиця віртуальних методів


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн