Путешествуя по TObject. Или как оно работает
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: контрольные 7 класс, бесплатные рефераты без регистрации
| Добавил(а) на сайт: Jaz'kov.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 | Следующая страница реферата
class function ClassName: ShortString;
Возвращает название класса. Используется VMT.
class function ClassNameIs(const Name: string): Boolean;
Выполняет сверку названия с названием необходимого класса. Используется при выполнении оператора is.
class function ClassParent: TClass;
Отдает указатель на родительский класс. Используется при выполнении оператора is.
class function ClassInfo: Pointer;
Возвращает указатель на RTTI информацию о классе. Если класс скомпилирован без использования директивы $M+, то возвращается nil.
class function InstanceSize: Longint;
Размер экземпляра. Как видно из описания информация о размере и о RTTI хранится в VMT вне привязки к конкретному экземпляру. Судя по всему, эта информация формируется во время компиляции.
class function InheritsFrom(AClass: TClass): Boolean;
Возвращает точное указание на то, что данный класс унаследован от искомого. Эта функция сканирует VMT и родителей этого VMT на соответствие указанному классу.
class function MethodAddress(const Name: ShortString): Pointer;
Сканирует VMT на наличие метода и при удачном результате возвращает указатель но него. При не нахождении метода в "родной" VMT сканируется VMT родителя и так до тех пор, пока не будет найден (или не найден) адрес метода. Таким образом осуществляется реализация метаморфизма в объектной модели Delphi.
class function MethodName(Address: Pointer): ShortString;
Функция обратна предыдущей.
Function FieldAddress(const Name: ShortString): Pointer;
Доступ к полям. Возвращает указатель на поле. Как всегда использует VMT.
Function GetInterface(const IID: TGUID; out Obj): Boolean;
Используется при наследовании интерфейсов и возвращает интерфейс указываемого IID.
class function GetInterfaceEntry(const IID: TGUID): PinterfaceEntry;
Возвращает точку входа интерфейса на указанный IID.
class function GetInterfaceTable: PInterfaceTable;
Таблица интерфейсов. Несмотря на то, что заявлено использование бесконечного числа интерфейсов, в исходном тексте ясно указано на 10000 элементов таблицы интерфейсов. Я, разумеется, не хочу поставить эксперимент и попытаться превысить этот лимит, но прогресс идет такими темпами, что, боюсь, через некоторое время этот лимит будет исчерпан.
Function SafeCallException(ExceptObject: TObject; ExceptAddr: Pointer): HResult; virtual;
Рекомендуем скачать другие рефераты по теме: сочинение язык, доклад по биологии.
Категории:
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 | Следующая страница реферата