07 наследование 1
.pdf07 – 21
//ОПАСНО:
//ОБК обрабатывается как ОПК через УБК,
//преобразованный в УПК; во время
//выполнения возможна ошибка при доступе
//к элементу ПК, т.к. его нет в БК!
pointPtr = &p;
circlePtr = (Circle *) pointPtr;
07 – 22
cout << ”ОБК как ОПК через УБК, ”
<<”преобразованный в УПК:”
<<endl << *circlePtr
<<endl << ”Площадь: ”
<<circlePtr -> area(); return 0;
}
07 – 23
ОБК как ОБК: [30, 50] ОПК как ОПК: Центр = [120, 89]; Радиус = 2.7
ОПК как ОБК через УБК, не преобраз-ный в УПК: [120, 89]
ОПК как ОПК через УБК, преобразованный в УПК:
Центр = [120, 89]; Радиус = 2.7 Площадь: 22.8906
07 – 24
ОБК как ОПК через УБК, преобразованный в УПК:
Центр = [30, 50]; Радиус = 4.022395e-38
Площадь: 0
07 – 25
ПОЯСНЕНИЯ:
1)Интефейс ПК
2)Список инициализаторов элементов (ИЭ)
При отсутствии списка ИЭ и конструктора с умолчанием – сообщение, например:
Cannot find default constructor to initialize base class ’Point’
3)Доступ перегруженной операции << из ПК к защищенным элементам БК
07 – 26
РАБОТА ПРОГРАММЫ:
…