- •Конструкторы и деструкторы
- •Формат компонентной функции-деструктора
- •Void main () {
- •Void main()
- •Void main()
- •Конструктор с аргументами, задаваемыми по умолчанию
- •Void main ()
- •Void shownumber ( void)
- •Конструктор по умолчанию
- •Конструктор копирования
- •Int GetX ( ) { return X; }
- •Int GetX ( ) { return X; }
- •Int GetY ( ) { return y; }
- •Void Print ( t obj )
- •Void main () {
- •Void main ( )
- •Void main ( )
- •Void vivod ( ) // выводит данные
- •Void main ( )
- •Имя класса ::имя компонента
- •Void main ( )
- •Тип данных(имя класса ::*имя указателя)
- •Имяобъекта.* указатель на компонент данных;
- •Имя объекта.*указатель на метод(параметры);
- •Компонентные функции
- •Initgraph( тип графического драйвера, режим адаптера , путь к драйверу)
- •Void far initgraph (int far * graphdriver, int far * graphmode, char far * pathtodriver);
- •Void point :: show (void)
- •Void point :: hide(void)
- •Void main ( )
- •Указатель this
- •Void print ( void) void print ( void)
- •Void main ()
- •Void que::add(void)
- •Void que::print (void)
- •Void main( )
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() ); - задержка программы до нажатия клавиши.
Контрольные вопросы:
В чем суть объектно-ориентированного подхода к программированию? Дать определение класса.
Определение объекта класса по имени и с помощью указателя и динамического выделения памяти
Обращение к компонентам объекта
Что такое статический элемент класса
Что такое друзья класса
Что такое конструкторы и деструкторы. Какие типы конструкторов вы знаете?
Когда необходимо описывать конструктор копирования?