Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
}
Из класса point класс spot наследуются координаты x, y точки и две функции GetX () и GetY ().
Методы point::show () и point:: move () замещены в производном классе.
Если нас не устраивает реализация тех или иных функций базового класса, с помощью замещения можно изменить реализацию базовой функции. Нужно в производном классе объявить функцию с тем же именем, параметры и тип возвращаемого результата не важны. Главное, чтобы было то же имя. Исходная функция, продолжая существовать, становится невидимой. Однако ее все же можно вызвать, используя операцию разрешения видимости “::”.
Функция point:: hide () не наследовалась, т. к. имеет статус private.
Конструктор класса имеет три параметра – координаты центра пятна (xi, yi) и радиус пятна (ri).
Координаты передаются в конструктор базового класса, и создается безымянный объект точка – центр пятна. Конструктор базового класса вызывается до выполнения тела конструктора производного класса.
Затем производится инициализация данных производного класса. Для сохранения образа пятна в оперативной памяти выделяется память с помощью new.
Деструктор автоматически вызывается, когда объект уничтожается при завершении программы или при выходе из области действия соответствующих объектов.
В нашем случае в деструкторе освобождается память, выделенная под образ пятна, и убирается пятно с экрана. Для последнего действия используется функция hide(), которая вызывает графические функции. Таким образом, вызов деструктора по окончанию программы и после функции закрытия графического режима не возможен.
Поэтому в программу включен внутренний блок, где определены объекты и деструктор будет автоматически вызываться при выходе из блока, т.е. еще до closegraph().
Дата публикования: 2014-11-28; Прочитано: 271 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!