Наследование
Вновь создаваемый класс может наследовать элементы и свойства уже существующих классов. Новый класс называется производным или потомком. Класс, элементы которого наследуются, называется базовым или родителем. В свою очередь, вновь полученный класс может служить базовым для следующего производного класса. Таким образом, можно получить древовидную структуру классов для программного проекта. Как правило, базовый класс заключает в себе (абстрагирует) наиболее общие черты, присущие ему и производным от него классам. В языке С++ допускается как простое наследование, когда производный класс имеет только один базовый класс, так и множественное наследование, когда производный класс является наследником нескольких базовых. Синтаксис простого и множественного наследования имеет следующий вид:
//Первый базовый класс
class А
{.. .
;};
//Второй базовый класс
class В { ;};
//Производный класс. Простое наследование
class С : public А {...... ;};
// Производный класс. Множественное наследование
class D: public A, protected В {.... ;};
void main() {....;}
Как видно из примера, базовые классы в заголовке производного класса записываются с меткой (ключом) доступа (табл. 22) через двоеточие. Если базовый класс наследуется как private, то его публичные элементы будут наследоваться с меткой private (табл. 22). Однако в этом случае элементы базового класса можно объявить public в производном классе, записав их в разделе public производного класса. Такое наследование называется частным. Пример частного наследования class А //Базовый класс { public:
int ql(); int q2();
class В : private А //Производный класс {public:
A::ql; ....;};
void main() {....;}
Таблица 22
Варианты доступа при наследовании
Наследование |
Доступ в базовом |
Доступ в производном |
|
классе |
классе |
public |
public |
public |
|
protected |
protected |
|
private |
private |
protected |
public |
protected |
|
protected |
protected |
|
private |
private |
private |
public |
private |
|
protected |
private |
|
private |
private |
Комментарии (0)