rcle. h" // описание класса Circle
//Описания методов класса Circle:
//Конструктор
Circle :: Circle (int xc, int ус, int radc0) : Point(xc,yc)
radiusradc; visl;
//Изобразить окружность на экране
void Circle :: show(void)
circle (x,y,radius); //рисование окружности
//Убрать окружность с экрана
void Circle :: hide(void)
unsigned int col;//объявление переменной для текущего цвета
if (vis0) return;//окружности нет
colgetcolor();//запоминание текущего цвета
setcolor(getbkcolor()); //выявление текущего цвета фона
circle(x,у,radius); //рисование окружности цветом фона
vis0;
setcolor(col);//восстановление текущего цвета
// Переместить окружность в новое место экрана
void Circle :: move(int xn, int yn)
hide();//стирание старой окружности
xxn;yуn;show();//рисование новой окружности
// Изменить размер окружности
void Circle :: vary(int d)
Hide();//стирание старой окружности
radiusd;//изменение радиуса
if(radiusfv();// вызов функции fv() базового класса
p-f();// вызов функции f() базового класса
р &chezl;// указатель ссыпается на объект производного класса
p-fv();// вызов виртуальной функции fv() производного класса
p-f();// вызов обычной функции f() производного класса
return 0;
При выполнении приведенной программы на экран будут выданы следующие результаты:
call fv() of base class: 5
call f() of base class: 25
call fv() of derived class childl: 16
call f() of base class: 225
Полученные результаты показывают, что при обращении к виртуальной функции fv() производного класса происходит вызов функции производного класса. Обращение к обычной функции f() производного класса приводит к вызову одно
Страницы: << < 19 | 20 | 21 | 22 | 23 > >>