Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конструкторы и деструкторы.doc
Скачиваний:
24
Добавлен:
18.04.2015
Размер:
184.83 Кб
Скачать

Initgraph( тип графического драйвера, режим адаптера , путь к драйверу)

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

Void main ( )

{ // создается три объекта , три невидимых точки

point A ( 150, 70 );

point B ; // координаты по умолчанию равны x=0 и y=0

point D ( 400, 200);

//инициализация графики

int dr = DETECT , mod ;

initgraph ( & dr , & mod , “D :\\ borlandc\\ bgi “);

//установка цвета

setcolor(4) ;

A.show ( ) ; // показать на экране точкуА

getch ( ) // подождать до нажатия клавиши

B.show ( ) ; // показать на экране точкуВ

getch ( ) ; // подождать до нажатия клавиши

D.show ( ) ; // показать на экране точкуD

getch ( ) ; // подождать до нажатия клавиши

A.move ( ) ; // переместить точкуАв начало координат

getch ( ) ; // подождать до нажатия клавиши

B.move(50, 60 ) ; // переместить точкуB

getch ( ) ; // подождать до нажатия клавиши

closegraph( ) ;

}

При обращении к функции getch( ) программа останавливается и ждет ввода с клавиатуры любого символа, появляется возможность отследить смену изображений.

С этой же целью используется функция int kbhit (void) (прототип в файлеconio.h ) .

while (! Kbhit() ); - задержка программы до нажатия клавиши.

Контрольные вопросы:

  1. В чем суть объектно-ориентированного подхода к программированию? Дать определение класса.

  1. Определение объекта класса по имени и с помощью указателя и динамического выделения памяти

  1. Обращение к компонентам объекта

  1. Что такое статический элемент класса

  1. Что такое друзья класса

  1. Что такое конструкторы и деструкторы. Какие типы конструкторов вы знаете?

  1. Когда необходимо описывать конструктор копирования?