Что такое друзья класса
Что такое статический элемент класса
Обращение к компонентам объекта
Определение объекта класса по имени и с помощью указателя и динамического выделения памяти
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) В чем суть объектно-ориентированного подхода к программированию? Дать определение класса.
6) Что такое конструкторы и деструкторы. Какие типы конструкторов вы знаете?
7) Когда необходимо описывать конструктор копирования?
Каждый раз при создании объекта класса строится указатель, называемый this, и содержащий адрес этого объекта. Правильнее сказать, указатель определяется не в момент создания объекта, а в момент вызова любого из методов объекта.
В связи с неявным определением this является константным указателем, т.е. по умолчанию происходит определение:
имя класса *const this = адрес обрабатываемого объекта
При работе с компонентами класса можно использовать указатель this
Эквивалентно:
Class point { int x, y; Class point { int x, y;
public: public:
point(int xx=0, int yy=0) point(int xx=0, int yy=0)
{this-> x=xx; this ->y =yy;}; { x=xx; y =yy;};
void print (void) void print (void)
{ cout<< this->x <<” “ << this->y;}; {cout<< x <<” “ <<y;};
} }
В таком использовании нет никаких преимуществ.
Иногда используется при конфликте имен, когда имена формальных параметров функций совпадают с именами компонентов класса:
Class point { int x, y; Class point { int x, y;
public: public:
point(int x=0, int y=0) point(int x=0, int y=0)
{this-> x=x; this ->y =y;}; { point::x=x; point::y =y;};
// используя this // используя квалифицированное имя
…
Часто в функциях- членах класса параметры функции имеют объект некоторого класса (или указатель на объект), а объект еще не существует. Для этого также используется указатель this, обозначающий указатель на тот объект, для которого вызывается данная функция.
|
|