- •Наследование
- •Наследование классов
- •Классы union не могут использоваться при наследовании! Определение производных классов: сlass t : X, y , z {…} ;
- •Void main ( )
- •Передача параметров в базовый класс
- •Конструкторы с инициализацией по умолчанию в иерархии классов
- •Класс “точка на графическом экране”. Производный класс –“пятно”
- •Void point :: show (void)
- •Void point ::move ( int xn, int yn )
- •Int&point::GetX (){return X;}
- •Int& point:: GetY(void) {return y;}
- •Initgraph( тип графического драйвера, режим адаптера , путь к драйверу)
- •Void far initgraph (int far * graphdriver, int far * graphmode, char far * pathtodriver);
- •Void main ( )
- •Рассмотрим класс “ пятно”
- •Int size;
- •Void main ( )
- •Множественное наследование. Виртуальные базовые классы
- •Рассмотрим множественное наследование на примере.
- •Void show ()
- •Объект базового класса point дублируется:
- •Spotelli
- •Void show()
- •Void hide()
- •Void show()
- •Void hide()
- •Void main ( )
- •Class a { // самый верхний базовый класс а
Класс “точка на графическом экране”. Производный класс –“пятно”
// следующее описание класса point находится в модуле point.h
#ifndef PH
#define PH 1
class point { //точка на экране дисплея
protected:
int x, y ; // защищенные компонентные данные
public: // общедоступные компонентные функции
point (int xx=0 , int yy =0) ; // прототип конструктора
// с умалчиваемыми значениями
int& GetX (); // функция возвращает координату x
int& GetY (); // функция возвращает координату y
void show (void); // прототип функции изображения точки
void move ( int xo=0 , int yo =0) ; // прототип функции
// перемещения точки с умалчиваемыми значениями
// по умолчанию перемещает в нулевые координаты
private : // собственная функция класса
void hide ( ) ; // прототип функции, убирающей точку с экрана
} ;
#endif
// внешнее определение методам класса находится в модуле point.cpp
#ifndef PC
#define PC 1
# include <graphics.h> // подключение графической библиотеки
# include “point.h” //необходимо включить описание класса point
point::point( int x1, int y1 ) // определение конструктора
{ x = x1 ; y = y1 ; }
Void point :: show (void)
{
putpixel (x, y , getcolor( ) ) ;
// изображает точку с координатами x, y цветом,
// номер которого дает третий параметр
// int getcolor(void) - возвращает текущий номер цвета символов
}
void point :: hide(void) // убирает точку с экрана
{ putpixel (x, y , getbkcolor( )) ; } // int getbkcolor( void) -
// возвращает номер цвета фона
Void point ::move ( int xn, int yn )
{ hide ( ) ; // убирает тоску с координатами x, y
x =xn ; y= yn ; // координатам присваивается новое значение
show ( ) ; // изображается точка с новыми координатами
}
Int&point::GetX (){return X;}
Int& point:: GetY(void) {return y;}
#endif
При объявлении методов класса использовались (инкапсулировались) графические функции, прототипы которых находятся в заголовочном файле graphics.h
Все эти функции предоставляют возможности управления графическим экраном.
Стандартное состояние ПК – соответствует работе экрана в текстовом режиме (25 строк по 80 символов в строке).
Если мы хотим использовать графические средства компьютера, необходимо инициировать графический режим работы дисплейного адаптера.
Для управления техническими средствами ПК имеются соответствующие программы, называемые драйверами.
Графический драйвер управляет дисплейным адаптером в графическом режиме.
Графические возможности адаптера определяются разрешением экрана (количеством точек экрана) и количеством цветов, которыми может светиться каждая точка.
Наиболее распространенные дисплейные адаптеры (CGA - Color Graphics Adapter, EGA – Enhanced (усиленный) Graphics Adapter, VGA – Video Graphics Array (графический видеомассив), SVGA и т. д. ) могут иметь несколько графических режимов работы. Для управления современными графическими адаптерами мы используем драйвер EGAVGA.BGI
Экран представляет собой совокупность светящихся точек - пикселей. Количество точек определяется монитором и режимом драйвера для работы с ним. Положение пикселя определяется его координатами по отношению к точке с координатами 0, 0 – верхнему левому углу экрана.
Для инициализации графического режима адаптера используется вызов функции: