Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пп (кроме 1,21,37).docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
182.5 Кб
Скачать

30. Конструктор класса. Конструктор с параметрами и конструктор по умолчанию. Конструкторкопирования.Операторприсваивания.Деструктор.

Конструктор класса — это специальный метод класса. Он вызывается при создании объекта класса. Конструкторы (в своем описании) отличаются от других методов класса тем, что их имя совпадает с именем класса. Кроме того, при описании любого метода класса, кроме конструктора, мы обязаны указать тип возвращаемого значения, а если метод не возвращает никакого значение, то мы должны вместо типа явно указать void. При описании конструктора тип возвращаемого значения вообще не указывается.

Разберем более подробно, что происходит при создании объекта класса.

-Ищется класс объекта среди уже используемых в программе классов. Если его нет, то он ищется во всех доступных программе каталогах и библиотеках. После обнаружения класса в каталоге или библиотеке выполняется создание и инициализация статических полей класса. Т.е. для каждого класса статические поля инициализируются только один раз.

-Выделяется память под объект.

-Выполняется инициализация полей класса.

-Отрабатывает конструктор класса.

Итак, что такое конструктор .

1. Это специальный метод класса.

2. Его имя совпадает с именем класса.

3. Конструктор не возвращает никакого значения.

4. Конструктор, как и любой другой метод, может иметь параметры.

5. Конструктор без параметров называется конструктором по умолчанию (defaultconstructor).

6. В классе может быть несколько конструкторов. В этом случае они должны иметь разные наборы параметров.

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

До сих пор в примерах мы использовали примерно следующий синтаксис создания объектов.

SomeClassobj = newSomeClass();

В данном случае создается объект и при его создании используется конструктор без параметров (конструктор по умолчанию). Но возможен и другой вариант.

SomeClassobj = new SomeClass(1, 'a');

Здесь при создании объекта вызывается конструктор с двумя параметрами. Т.е. в классе SomeClass должен быть описан конструктор, имеющий один арифметический параметр (например, int) и один символьный параметр.

Конструктор по умолчанию – это конструктор, который можно вызвать без аргументов. Конструктор может иметь параметры, но все они должны иметь значения по умолчанию.

Конструктор с параметрами-определяет необходимые значения полей на этапе создания объекта.

Конструктором копирования (в англоязычной литературе используется термин copyconstructor) называется специальный конструктор в языке программирования C++, применяемый для создания нового объекта как копии уже существующего. Такой конструктор принимает как минимум один аргумент: ссылку на копируемый объект.

Обычно компилятор автоматически создает конструктор копирования для каждого класса (известные как неявные конструкторы копирования, т.е. конструкторы копирования, заданные неявным образом), но в некоторых случаях программист создает конструктор копирования, называемый в таком случае явным конструктором копирования (или "конструктором копирования, заданным явным образом"). В подобных случаях компилятор не создает неявные конструкторы.Конструктор копирования в основном необходим когда объект имеет указатель или неразделяемую ссылку, как например, на файл, в этом случае вам обычно также потребуется деструктор и оператор присваивания

Оператор присваивания - основной оператор любого языка программирования. Общаяформазаписиоператора:

имявеличины := выражение

Дестру́ктор— специальный метод класса, служащий для деинициализации объекта (например освобождения памяти).