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

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

Читайте также:
  1. Абстрактные классы и чистые виртуальные функции. Виртуальные деструкторы. Дружественные функции. Дружественные классы.
  2. Деструкторы
  3. Деструкторы
  4. Конструкторы
  5. Конструкторы и деструкторы
  6. Конструкторы и деструкторы. Автоматическая инициализация. Список инициализации элементов.
  7. Конструкторы не наследуются, поэтому производный класс должен иметь собственные конструкторы.
  8. Наследование. Множественное наследование. Конструкторы при множественном наследовании. Роль наследования при разработке программ.
  9. Наследование. Понятие наследования. Конструкторы порожденного класса. Иерархия классов. Абстрактный базовый класс.

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

Основные свойства конструкторов:

1. Конструктор не возвращает значения(нельзя получить указатель на конструктор).

2. Класс может иметь несколько конструкторов с разными параметрами для разных типов инициализации(при этом используется механизм перегрузки).

3. Конструктор вызываемый без параметров называется конструктором без параметров называется конструктором по умолчанию.

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

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

6. Конструкторы не наследуются

7. Конструкторы нельзя описывать модификаторами virtual const static

8. Конструкторы глобальных объектов вызываются до вызова функции main, локальные объекты создаются как только становится активна область их действий, конструктор запускается и при создании временного объекта

9. Конструктор вызывается если в программе встретилась синтаксическая конструкция:

· Имя _ класса имя _ объекта [(список параметров)];

· Имя _ класса (список параметров);

· Имя _ класса имя _объекта = выражение;

Monstr super(200,300) vasia(50),z;

Monstr x=monstr(1000);

Monstr y=500;

Виды конструкторов:

· Конструктор по умолчанию

· Конструктор с параметрами

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

Специальный вид конструктора получающий в качестве единственного параметра указатель на объект этого же класса.

При описании нового объекта с инициализацией нового объекта

При передаче объекта в функцию по значению

При возврате объекта из функции (а так же при обработке исключений

 

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

Деструктор вызывается автоматически когда объект выходит из области видимости:

1. Для локальных объектов при выходе из блока в котором они объявлены

2. Для глобальных как часть процедуры выхода из main

3. Для объектов заданных через указатели, деструктор вызывается неявно при использовании операции delete.

Имя деструктора с ~(тильды) непосредственно за которой следует имя класса.

Деструктор:

· Не имеет аргументов и возвращаемого значения

· Не может быть объявлен как const и static

· Не наследуется

· Может быть виртуальным

Если деструктор не определен компилятор автоматически создает пустой деструктор.

Monstr::~monstr() {delete[] name;}

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)