Составители:
Рубрика:
60
– это субъекты, а студент-дневник и студент-вечерник являются студентами, то
есть описываемые классами сущности вступают в отношения обобщения-
конкретизации. Однако, если мы захотим добавить в программу класс Group, опи-
сывающий учебную группу, то в отношение наследования с классом Student такой
класс вступить не сможет: мы не можем сказать, что группа
-это студент. Класс
Student правильно будет агрегировать в класс Group (напомним – для агрегирова-
ния отношения классов проверяются словосочетанием «состоит из»: группа со-
стоит из студентов). Отношения классов Group и Student похожи на отношения
классов client и bank, рассмотренных в листингах 16 и 17, и правильным будет
включить в класс Group массив или динамический
список объектов класса Student.
4.3. Множественное наследование
Как уже отмечалось, в С++ производный класс может быть поро-
ждён из любого числа непосредственных базовых классов. Наличие у
производного класса более чем одного непосредственного базового
класса называется множественным наследием. Синтаксически множест-
венное наследование отличается от единичного наследования списком
порождения, состоящим более
чем из одного класса.
//Листинг26. Пример множественного наследования
class A
{int a1;
public:
int a2;
void funcA()
};
class B
{int b1;
public:
int b2;
void funcB()
};
class C: public A, public B //наследуем класс С от A и B
– это субъекты, а студент-дневник и студент-вечерник являются студентами, то есть описываемые классами сущности вступают в отношения обобщения- конкретизации. Однако, если мы захотим добавить в программу класс Group, опи- сывающий учебную группу, то в отношение наследования с классом Student такой класс вступить не сможет: мы не можем сказать, что группа-это студент. Класс Student правильно будет агрегировать в класс Group (напомним – для агрегирова- ния отношения классов проверяются словосочетанием «состоит из»: группа со- стоит из студентов). Отношения классов Group и Student похожи на отношения классов client и bank, рассмотренных в листингах 16 и 17, и правильным будет включить в класс Group массив или динамический список объектов класса Student. 4.3. Множественное наследование Как уже отмечалось, в С++ производный класс может быть поро- ждён из любого числа непосредственных базовых классов. Наличие у производного класса более чем одного непосредственного базового класса называется множественным наследием. Синтаксически множест- венное наследование отличается от единичного наследования списком порождения, состоящим более чем из одного класса. //Листинг26. Пример множественного наследования class A {int a1; public: int a2; void funcA() }; class B {int b1; public: int b2; void funcB() }; class C: public A, public B //наследуем класс С от A и B 60
Страницы
- « первая
- ‹ предыдущая
- …
- 58
- 59
- 60
- 61
- 62
- …
- следующая ›
- последняя »