
09 полиморфизм
.pdf09 – 21
int main()
{
// Создание УБК и ОПК
Worker *w;
Boss b(”Петр”, ”Иванов”, 7000);
// Связывание УБК с ОПК
w = &b;
09 – 22
//Вызов двух ВФ методом
//динамического связывания
w->print();
cout << ” заработал ”
<<w->earnings()
<<” руб.” << endl;
09 – 23
//Вызов двух ВФ методом
//статического связывания
b.print();
cout << ” заработал ”
<<b.earnings() << ” руб.”
<<endl << endl;
09 – 24
//Единая обработка объектов разных ПК
//посредством вызова ВФ через УБК
cout << ”Ведомость ЗП сотрудников”
<<endl << endl;
//Создание четырех ОПК
Boss b1(”Иван”, ”Петров”, 7000); Boss b2(”Анна”, ”Попова”, 9000);
09 – 25
Comm c1(”Петр”, ”Иванов”, 5000, 20, 40000);
Comm c2(”Вера”, ”Мухина”, 7000, 15, 40000);
//Создание и инициализация массива
//УБК,указывающих на четыре ОПК
Worker *wptr[4] = {&b1, &c2, &b2, &c1};
09 – 26
//Единая обработка объектов
//разных ПК через УБК
for(int i=0; i<4; i++) { wptr[i]->print();
cout << ” – ”
<<wptr[i]->earnings()
<<” руб.”;
}
return 0;
}

09 – 27
Администратор Петр Иванов заработал 7000 руб. Администратор Петр Иванов заработал 7000 руб.
Ведомость ЗП сотрудников
Администратор Иван Петров – 7000 руб. Комиссионный служащий Вера Мухина – 13000 руб. Администратор Анна Попова – 9000 руб. Комиссионный служащий Петр Иванов – 13000 руб.