![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Constructor DestructorСтр 1 из 6Следующая ⇒
ЛЕКЦИЯ 3 ФУНКЦИИ-ЧЛЕНЫ КЛАССА_______________________________________________________ 1 Конструкторы и деструкторы_________________________________________________________________ 1 Правила для конструкторов _________________________________________________________________ 2 Правила для деструкторов___________________________________________________________________ 2 Список инициализации элементов_____________________________________________________________ 3 Конструкторы по умолчанию_________________________________________________________________ 3 Конструкторы копирования__________________________________________________________________ 4 Указатель this______________________________________________________________________________ 5 Встраиваемые (inline) функции________________________________________________________________ 5 Статические данные-члены класса____________________________________________________________ 6 Статические функции-члены класса ___________________________________________________________ 7 Константные данные-члены класса____________________________________________________________ 7 Константные функции-члены класса___________________________________________________________ 8 Константные объекты________________________________________________________________________ 8 ФУНКЦИИ-ЧЛЕНЫ КЛАССА Конструкторы и деструкторы Создавая некоторый объект, его необходимо проинициализировать. Для этой цели C++ предоставляет функцию-член, которая называется конструктором. Конструктор класса вызывается всякий раз, когда создается объект его класса. Конструктор имеет то же имя, что и класс, членом которого он является, и не имеет возвращаемого значения. Заметим, что программист не должен писать код, вызывающий конструктор класса. Всю необходимую работу выполняет компилятор. Конструктор вызывается тогда, когда создается объект его класса. Объект, в свою очередь, создается при выполнении оператора, объявляющего этот объект. Таким образом, в C++ оператор объявления переменной является выполняемым оператором. Для глобальных объектов конструктор вызывается тогда, когда начинается выполнение программы. Для локальных объектов конструктор вызывается всякий раз при выполнении оператора, объявляющего переменную. Функцией-членом, выполняющей действия, обратные конструктору, является деструктор. Эта функция-член вызывается при удалении объекта. Деструктор обычно выполняет работу по освобождению памяти, занятой объектом. Он имеет то же имя, что и класс, которому он принадлежит, с предшествующим символом ~ и не имеет возвращаемого значения. Рассмотрим пример класса, демонстрирующего работу конструктора и деструктора: class Dot { public: Dot () { cout «" Constructor \n"; } // конструктор ~Dot () { cout «" Destructor \n"; } // деструктор } void main () { Dot A; // создание объекта } Эта программа выводит на экран следующее: Constructor Destructor Деструктор класса вызывается в момент удаления объекта. Это означает, что для глобальных объектов он вызывается при завершении программы, а для локальных - когда они выходят из области видимости. Заметим, что невозможно получить указатели на конструктор и деструктор. Обычно конструктор содержит параметры, которые позволяют при построении объекта задать ему некоторые аргументы. Если нужно проинициализировать переменные класса, используется конструктор с параметрами. Рассмотрим следующий пример:
|