Конструкторы и деструкторы при наследовании

Конструкторы не наследуются — они создаются в производном классе (если не определены программистом явно). Система поступает с конструкторами следующим образом:

· если в базовом классе нет конструкторов или есть конструктор без аргументов (или аргументы присваиваются по умолчанию), то в производном классе создание конструктора можно опустить — компилятор автоматически создаст конструктор копирования и конструктор без аргументов;

· если в базовом классе все конструкторы с аргументами, производный класс обязан иметь конструктор, в котором явно должен быть вызван конструктор базового класса;

· при создании объекта производного класса сначала вызывается конструктор базового класса, затем — производного. Это автоматически выполняет компиляторэ

Деструктор класса, как и конструкторы, не наследуется, а создается. С деструкторами система поступает следующим образом:

· при отсутствии деструктора в производном классе компилятор создает деструктор но умолчанию;

· деструктор базового класса вызывается в деструкторе производного класса автоматически независимо от того, определен он явно или создан компилятором;

· деструкторы вызываются (для уничтожения объектов) в порядке, обратном вызову конструкторов.

· создание и уничтожение объектов выполняется по принципу LIFO: последним создан — первым уничтожен.








Дата добавления: 2015-07-30; просмотров: 1273;


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

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.