Конструктор. Объявление и определение конструктора. Использование конструктора. Конструктор по умолчанию. Список инициализаторов
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Конструктор – это функция (функция-член), которая выполняется один раз при инициализации объекта. Это означает, что он вызывается тогда, когда происходит объявление объекта.

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

· Общая форма объявления конструктора: имя_класса (список_аргументов);

· Явный вызов конструктора:          A a =A (1, "test");

· Неявный вызов конструктора:       A a(1, "test");

Конструктор по умолчанию - это конструктор, применяемый для создания объекта, когда не предоставляются явные инициализирующие значения.

То есть, это конструктор, который используется в объявлении следующим образом:

A a; // сдесь конструктор по умолчанию вызванный неявно.

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

1.конструктор по умолчанию(создаётся, если не было определено ни одного конструктора в классе);

2.конструктор копирования(создаётся, если он не был определён);

3.операция присваивания(создаётся, если она не была определена);

4.деструктор по умолчанию(создаётся, если он не был определён);

5.операция взятия адреса(создаётся, если она не была определена).

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

Общий вид прототипа конструктора копирования:

имя_класса (const имя_класса & имя_объекта);

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

объекту.

Деструктор. Объявление и использование деструктора.

Деструктор – это функция(функция-член), которая представляет собой противоположность конструктору. Он вызывается при уничтожении (отмене выделения памяти) объектов.

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

Общая форма объявления деструктора:  ~имя_класса(список_аргументов);

Пример использования конструктора и деструктора в классе А:

classA

{

public:

A (int n, char d[10]) {} // конструктор

~ A () {}                     // деструктор

};

Связь классов и структур.

Классы и структуры являются двумя основными конструкциями системы общих типов CTS в платформе .NET Framework. Каждая по сути является структурой данных, инкапсулирующей набор данных и поведение, связанные как логическая единица. Данные и поведение являются членами класса или структуры, и в них включены методы, свойства, события и т.д., как описано далее в этом разделе.

Объявление класса или структуры подобно чертежу, который используется для создания экземпляров или объектов во время выполнения. При определении класса или структуры с именем Person, Person является именем типа. При объявлении или инициализации переменной p типа Person, p считается объектом или экземпляромPerson. Возможно создание нескольких экземпляров одного типа Person, и каждый экземпляр может иметь разные значения в своих свойствах и полях.

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

Структура является типом значения. При создании структуры переменная, к которой она назначается, сохраняет фактические данные структуры. При назначении структуры новой переменной выполняется ее копирование. Поэтому новая переменная и исходная переменная содержат две отдельных копии одних данных.Изменения, внесенные в одну копию, не влияют на другую копию.

Как правило, классы используются для моделирования более сложного поведения или данных, которые, как предполагается, будут изменены после создания объекта класса. Структуры лучше всего подходят для небольших структур данных, которые содержат преимущественно те данные, которые не предназначены для изменения после создания структуры.

Дата: 2019-03-05, просмотров: 173.