
polevoy_cpp_2012_spring_lecture_08
.pdf
Рекомендации
•делайте все данные private, обеспечивая доступ к ним через методы
•используйте protected для методов реализации, которые могут использоваться в производных классах
31.03.2012 |
cppNewb.ru |
41 |

Полиморфизм
•полиморфный – “имеющий много форм”
•взаимозаменяемость объектов с одинаковым интерфейсом
•использование одного имени для разных задач (реализаций)
31.03.2012 |
cppNewb.ru |
42 |

Виды наследования
•одиночное наследование
–один непосредственный базовый класс
•множественное наследование
–более одного непосредственного базового класса
31.03.2012 |
cppNewb.ru |
43 |

Множественное наследование (синтаксис)
•в списке базовых классов через запятую указываются все базовые классы (непосредственные)
пример:
class Derived
: public Base1
, public Base2
{
...
31.03.2012 |
cppNewb.ru |
44 |

Проблемы множественного наследования
•неоднозначности имен (членов и методов)
•повторяющиеся базовые классы
(ромбовидная схема наследования)
•размещение данных в памяти
•порядок и количество вызовов методов
31.03.2012 |
cppNewb.ru |
45 |

Использование множественного наследования
•избегайте без наличия весомой причины и полного понимания работы механизмов языка
•используйте для наследования нескольких интерфейсов
31.03.2012 |
cppNewb.ru |
46 |