6.5.1. Объекты |
Вверх Предыдущий Следующий |
В действительности невидимое объявление конструктора объекта следующее: constructor init(_vmt : pointer; _self : pointer …); Где _vmt – это указатель на таблицу виртуальных методов для этого объекта. Это значение равно nil, если конструктор из экземпляра объекта (такого как вызов наследуемого конструктора). _self – это либо nil, если экземпляр должен быть создан динамически (объект объявлен как указатель), или адрес экземпляра объекта, если объект объявлен как обычный объект (сохранён в области данных) или если экземпляр объекта уже создан. Созданный экземпляр (если он создан через new), возвращается в аккумулятор. Деструктор объявляется следующим образом: destructor done(_vmt : pointer; _self : pointer …); Где _vmt – это указатель на таблицу виртуальных методов этого объекта. Это значение равно nil, если деструктор вызывается из экземпляра объекта (такого как вызов наследуемого конструктора), или если экземпляр объекта – это переменная, а не указатель. _self – это адрес экземпляра объекта. |