Initgraph( тип графического драйвера, режим адаптера , путь к драйверу)
Компонентные функции
Если определение функции полностью размещено в классе, то эта функция по умолчанию считается подставляемой, т.е. при каждом вызове код функций встраивается в точку вызова.
При внешнем определении в теле класса располагается прототип функции:
<Тип> <имя функции >(спецификация формальных параметров);
Вне тела класса компонентная функция определяется следующим образом:
<Тип ><имя класса>::<имя функции>(спецификация формальных
параметров)
{ тело функции };
Функция компонент класса имеет туже область видимости, что и класс.
Пример: Работа с графической библиотекой
При объявлении методов класса использовались (инкапсулировались) графические функции, прототипы которыхнаходятся взаголовочном файлеgraphics.h
Все эти функции предоставляют возможности управления графическим экраном.
Стандартное состояние ПК – соответствует работе экрана в текстовом режиме (25 строк по 80 символов в строке).
Если мы хотим использовать графические средства компьютера, необходимо инициировать графический режим работы дисплейного адаптера.
Для управления техническими средствами ПК имеются соответствующие программы, называемые драйверами.
Графический драйвер управляет дисплейным адаптером в графическом режиме.
Графические возможности адаптера определяются разрешением экрана (количеством точек экрана) и количеством цветов, которыми может светиться каждая точка.
Наиболее распространенные дисплейные адаптеры (CGA - Color Graphics Adapter, EGA – Enhanced (усиленный) Graphics Adapter, VGA – Video Graphics Array (графический видеомассив), SVGA и т. д. ) могут иметь несколько графических режимов работы. Для управления современными графическими адаптерами мы используем драйвер EGAVGA.BGI
Экран представляет собой совокупность светящихся точек - пикселей. Количество точек определяется монитором и режимом драйвера для работы с ним. Положение пикселя определяется его координатами по отношению к точке с координатами 0, 0 – верхнему левому углу экрана.
Для инициализации графического режима адаптера используется вызов функции:
void initgraph (int far * graphdriver, int far * graphmode, char far * pathtodriver);
Для указания типа драйвера в файле имеются константы:
DETECT = 0 (режим автоопределения типа)
CGA =1
EGA=3
VGA=9
и т. д.
Аналогично имеются константы для определения моды адаптера.
Но если программа рассчитана на работу с любым адаптером, вызов функции можно производить с требованием автоопределения типа драйвера:
int dr = DETECT , //тип драйвера и
mod ; //режим работы адаптера
// определяются автоматически
//режим при этом выбирается с максимальным разрешением
initgraph ( &dr , &mod , "D:\\Borlandc\\BGI");
// предполагается, что драйвер находится в каталоге BGI
#include <graphics.h>
#include <conio.h>//содержит прототип функции getch( )
// опишем класс
class point { //точка на экране дисплея
int x, y ;// собственные компонентные данные
public:// общедоступные компонентные функции
point (int xx=0 , int yy =0) ; // прототип конструктора
// с умалчиваемыми значениями
void show (void);// прототип функции изображения точки
void move ( int xo=0 , int yo =0) ;// прототип функции
// перемещения точки с умалчиваемыми значениями
private :// собственная функция класса
void hide ( ) ;// прототип функции, убирающей точку с экрана
} ;
//дадим внешнее определение методам класса
point::point( int xx=0, int yy=0 )// определение конструктора
{ x = xx ; y = yy ; }
void point :: show (void)
{ putpixel (x, y , getcolor( ) ) ;} // int getcolor(void)
//возвращает номер цвета символов
void point :: hide(void)
{ putpixel (x, y , getbkcolor( )) ; }
void point ::move ( int xn=0, int yn=0 )
{ hide ( ) ;
x =xn ; y= yn ;
show ( ) ; }