Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lect06.pdf
Скачиваний:
4
Добавлен:
06.02.2016
Размер:
509.38 Кб
Скачать

Результаты

Sting

- Владимирский

централ...!

- Владимирский

Plasma

централ...!

- Владимирский

Kuklachev

централ...!

 

???

Почемувездевызванметод базовогокласса?

Проблемазаключаетсявтом,что,с точкизрениякомпилятора,массив

Performer * performers[3] хранитв себетриуказателянаобъектыкласса Performer,хотяпривыполнении программыэтосовсемнетак!

Выходиспользованиепозднего связывания.

Позднеесвязывание

Припозднемсвязывании(late/dynamic binding) адресаметодовопределяются динамическивовремявыполнения программы,анестатическипри компиляции.

Простойпример:указательнафункцию.

Длятого,чтобыдинамическоесвязывание работалодляобъектов,полиморфный методобъявляетсясключевымсловом virtual.

Измененныйпримерс typeid

Добавимвклассemployee полиморфный методprint:

class employee { public:

virtual void print() {} };

class manager : public employee {};

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]