- •Конструкторы и деструкторы
- •Формат компонентной функции-деструктора
- •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( )
Void main ( )
{ cot::count(500); …
//изменение статического компонента до объявления объектов
}
Указатели на компоненты класса
Определение указателя на компонентные данные класса:
Тип данных(имя класса ::*имя указателя)
В определение можно включить и инициализацию
& имя класса :: имя компонента
int ( stroka::*plen)=&stroka::len;
// - не верно, т.к. len –имеет статус private
При инициализации надо использовать общедоступные компоненты.
После объявления объекта к его компонентам следующий формат обращения через указатель:
Имяобъекта.* указатель на компонент данных;
Если определен указатель на объект формат обращения:
Указатель на объект-> *указатель на компонент данных ;
Определение указателей на компонентные функции
Тип возвращаемого результата ( имя класса ::*имя указателя на метод)
( спецификация параметров функции);
void (book::*fprt)(void) = & book::show_book ;
//определение указателя на компонентные функции классаbookи
// инициализация указателя компонентной функцией show_book
И форматы обращения к методам через указатели:
Имя объекта.*указатель на метод(параметры);
Указатель на объект-> *указатель на метод ( параметры);
Пример:
book A (“C и C++”, “Б.И.Березин, 40.0); // определен объект
void (book::*fprt)(void) = & book::show_book ;
(A.*fptr) ( ) // выведет на печать значения объекта
Если в определении класса было бы несколько идентичных функций указатель fptrможно “настроить” на другие функции
Компонентные функции
Если определение функции полностью размещено в классе, то эта функция по умолчанию считается подставляемой, т.е. при каждом вызове код функций встраивается в точку вызова.
При внешнем определении в теле класса располагается прототип функции:
<Тип> <имя функции >(спецификация формальных параметров);
Вне тела класса компонентная функция определяется следующим образом:
<Тип ><имя класса>::<имя функции>(спецификация формальных
параметров)
{ тело функции };
Функция компонент класса имеет туже область видимости, что и класс.
Пример: Работа с графической библиотекой
При объявлении методов класса использовались (инкапсулировались) графические функции, прототипы которых находятся в заголовочном файле graphics.h
Все эти функции предоставляют возможности управления графическим экраном.
Стандартное состояние ПК – соответствует работе экрана в текстовом режиме (25 строк по 80 символов в строке).
Если мы хотим использовать графические средства компьютера, необходимо инициировать графический режим работы дисплейного адаптера.
Для управления техническими средствами ПК имеются соответствующие программы, называемые драйверами.
Графический драйвер управляет дисплейным адаптером в графическом режиме.
Графические возможности адаптера определяются разрешением экрана (количеством точек экрана) и количеством цветов, которыми может светиться каждая точка.
Наиболее распространенные дисплейные адаптеры (CGA - Color Graphics Adapter, EGA – Enhanced (усиленный) Graphics Adapter, VGA – Video Graphics Array (графический видеомассив), SVGA и т. д. ) могут иметь несколько графических режимов работы. Для управления современными графическими адаптерами мы используем драйвер EGAVGA.BGI
Экран представляет собой совокупность светящихся точек - пикселей. Количество точек определяется монитором и режимом драйвера для работы с ним. Положение пикселя определяется его координатами по отношению к точке с координатами 0, 0 – верхнему левому углу экрана.
Для инициализации графического режима адаптера используется вызов функции: