Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Constructor Destructor




ЛЕКЦИЯ 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

Деструктор класса вызывается в момент удаления объекта. Это означает, что для глобальных объек­тов он вызывается при завершении программы, а для локальных - когда они выходят из области видимо­сти. Заметим, что невозможно получить указатели на конструктор и деструктор.

Обычно конструктор содержит параметры, которые позволяют при построении объекта задать ему не­которые аргументы.

Если нужно проинициализировать переменные класса, используется конструктор с параметрами. Рассмотрим следующий пример:


mylektsii.ru - Мои Лекции - 2015-2018 год. (0.006 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал