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

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

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

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

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

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, обозначающий указатель на тот объект, для которого вызывается данная функция.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: