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 (); }


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: