Skip to content

3.Создание и уничтожение объектов в С . Конструкторы и деструкторы. Виды конструкторов. Способы создания объектов.

Maksim edited this page Jun 15, 2018 · 1 revision

Выделили метод, который называли конструктор. Это метод вызываемый при инициализации объекта. У него отсутствует тип возврата. Конструктор можно перегружать. Конструктор не наследуется. Если конструктор private,то невозможно создание производных классов.

Когда вызывается конструктор:

  1. При определении для статических и внутренних объектов. Выполняется до функции main ();

  2. При определении локальных объектов;

  3. При выполнении оператора new;

  4. Для временных объектов.

Конструктор должен быть всегда. Если нет конструктора, то всегда создаётся 2 конструктора:

  1. По умолчанию;

  2. Конструктор копирования.

Если мы указали хотя бы один конструктор, то конструктор по умолчанию не создаётся. Конструктор копирования создаётся всегда.

Конструктор копирования вызывается:

  1. При инициализации одного объекта другим;

  2. При передаче по значению параметров;

  3. При возврате по значению.

Конструктор не может быть volatile, static, const

В С++ реализуется неявный вызов деструктора. Этот метод не принимает параметров. Нет типа возврата. Деструктор имеет такое же имя что и конструктор, но начинается со знака ~. Деструкторы вызываются в обратном порядке. Для локальных статических объектов вызывается деструктор до уничтожении глобальных статических объектов, но после выполнении программы. Временные объекты уничтожаются, когда в них отпадает надобность. Деструктор не перегружается.

Деструктор не может быть const, volatile, static, но может быть virtual.

Clone this wiki locally