Глава 6 Классы |
Вверх Предыдущий Следующий |
В подходе Delphi к объектно-ориентированному программированию, все вращается вокруг концепции «классов». Класс может рассматриваться как указатель на объект, или как указатель на запись со связанными с ним методами. Главная разница между объектами и классами в том, что объект будет помещен в стек, как и обычная запись, а класс всегда размещается в куче. В следующем примере: Var A : TSomeObject; // Объект B : TSomeClass; // Класс Главное отличие в том, что переменная A будет занимать столько же места в стеке, сколько занимает объект (TSomeObject). С другой стороны, переменная B всегда будет иметь размер всего лишь указателя на стек. Фактические данные класса располагаются в куче. Из этого следует еще одно отличие: класс нужно всегда инициализировать с помощью своего конструктора, тогда как для объекта такой необходимости нет. Вызов конструктора выделяет в куче необходимое количество памяти для данных экземпляра класса.
Фактически, если компилятор встречает в объявлении модулей objpas, он выдает предупреждение. 6.2 Обычные и статические поля 6.5.5 Конструктор и деструктор класса 6.5.6 Стасический метод класса 6.5.7 Методы обработки сообщений 6.5.8 Использование наследования 6.6.2 Индексированные свойства |