-
Notifications
You must be signed in to change notification settings - Fork 1
3.Создание и уничтожение объектов в С . Конструкторы и деструкторы. Виды конструкторов. Способы создания объектов.
Выделили метод, который называли конструктор. Это метод вызываемый при инициализации объекта. У него отсутствует тип возврата. Конструктор можно перегружать. Конструктор не наследуется. Если конструктор private,то невозможно создание производных классов.
Когда вызывается конструктор:
-
При определении для статических и внутренних объектов. Выполняется до функции main ();
-
При определении локальных объектов;
-
При выполнении оператора new;
-
Для временных объектов.
Конструктор должен быть всегда. Если нет конструктора, то всегда создаётся 2 конструктора:
-
По умолчанию;
-
Конструктор копирования.
Если мы указали хотя бы один конструктор, то конструктор по умолчанию не создаётся. Конструктор копирования создаётся всегда.
Конструктор копирования вызывается:
-
При инициализации одного объекта другим;
-
При передаче по значению параметров;
-
При возврате по значению.
Конструктор не может быть volatile, static, const
В С++ реализуется неявный вызов деструктора. Этот метод не принимает параметров. Нет типа возврата. Деструктор имеет такое же имя что и конструктор, но начинается со знака ~. Деструкторы вызываются в обратном порядке. Для локальных статических объектов вызывается деструктор до уничтожении глобальных статических объектов, но после выполнении программы. Временные объекты уничтожаются, когда в них отпадает надобность. Деструктор не перегружается.
Деструктор не может быть const, volatile, static, но может быть virtual.