{point A (100, 80) , B ( 300, 200); //создает два экземпляра “точки”
circ C ( A, 60); //создаем окружность с центром в т. А и радиусом 60 пикселей
ellips E ( B, 200, 100); //создаем эллипс с центром в т. В и радиусами 200 и 100 пикселей
// инициируем графику
int d = DETECT , m;
initgraph(&d, &m, “ d:\\borlandc\\ bgi”);
A.show(); getch();
B.show(); getch();
C.show() ; getch();
E.show(); getch();
C.move(B); getch();
E.hide(); getch();
C.hide();getch();
closegraph () ;
}
Рассмотрим пример использования виртуальных функций и указателя на базовый класс:
//замещение функций базового класса Button- кнопка
#include <conio.h>
#include <graphics.h>
const int width = 50;//ширина кнопки
const int height = 70;//высота кнопки
const int faset = 5;
class screen { //класс инициализации графического режима
public:
screen () { //конструктор - переход в графический режим
int d =DETECT, m;
initgraph (&d, &m, "D:\\borlandc\\bgi");
setfillstyle ( 1, DARKGRAY); //заливка сплошная темно-серым цветом
floodfill ( 3,5, WHITE);
//заполнить весь экран темно-серым цветом и обвести границу
//белым
}
~screen() {closegraph(); } //деструктор - переход в текстовой режим
};
class Button {//базовый класс
protected:
int x, y;// координаты кнопки верхнего угла кнопки
public:
Button ( int xi, int yi) { x= xi; y= yi; draw();}
void draw(); // две перегруженных функции: 1- рисование кнопки
void draw(char*s)
//2-функция вывода строки в центре кнопки черным цветом
{ setcolor (BLACK);
outtextxy(x+width/2, y+height/2, s );
//посередине выводится слово черным цветом
setcolor(WHITE); //установка белого цвета символов
}
virtual void action () =0; // чистая виртуальная функция
virtual int selected (char) =0; // чистая виртуальная функция
} ;
//компонентная функция рисования кнопки