Имя_базы:: имя компонента

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

Поясним последнее утверждение. Пусть в классе В определен метод f() и класс С является производным от В. Возможны три варианта:

1) Производный класс получает функцию B::f() без каких-либо изменений.

2) Производный класс может заменить унаследованную функцию B::f() своей функцией C:: f(). У функции класса С та же спецификация параметров, сигнатуры различаются только квалификаторами. В этом случае говорят, что метод производного класса переопределяет ("экранирует") одноименный метод базового класса.

3) Производный класс может определить функцию с тем же именем, но с другой спецификацией параметров — имеет место перегрузка.

 

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

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

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

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

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

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

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

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

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

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

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: