русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Вказівник this


Дата додавання: 2014-04-22; переглядів: 1280.


Методи кожного об’єкта мають доступ до вказівника this, що є аналогом відомого нам з вивчення Паскалю неявного параметра Self. В програмі 13.18 показано механізм роботи з цим вказівником.

#include<iostream.h>

#include<conio.h>

#include<stdio.h>

#include<bios.h>

class where

{private:

char chararray[10];

public:

void reveal()

{cout<<"\nАдреса обєкту "<<this;}

};

///////////////

int main()

{clrscr();

where w1,w2,w3;

w1.reveal();

w2.reveal();

w3.reveal();

cout<<endl;

bioskey(0);

return 0;

}

Програма 13.18

В головній функції цієї програми створюються три об’єкти типу where. Потім друкуються їх адреси за допомогою методу reveal(). Цей метод просто виводить значення вказівника this на екран, показуючи адресу кожної змінної. Конкретна адреса залежатиме від багатьох факторів і відрізнятиметься при різних виконаннях програми.

 

Доступ до компонентних даних через вказівник this

Коли ми викликаємо будь-який метод, значенням вказівника this стає адреса об’єкту, для якої цей метод викликаний. Вказівник this може інтерпретуватися як будь-який інший вказівник на об’єкт, відповідно, його можна використовувати для одержання доступу до даних об’єкту, на які він посилається. Це продемонстровано в програмі 13.19.

#include<iostream.h>

#include<conio.h>

#include<stdio.h>

#include<bios.h>

class what

{private:

int alpha;

public:

void tester()

{this->alpha=11;

cout<<this->alpha;

}

};

/////////////

int main()

{clrscr();

what w;

w.tester();

cout<<endl;

bioskey(0);

return 0;

}

Програма 13.19

Ця програма просто виводить на екран значення 11. Звернімо увагу, яким чином метод tester() дістає доступ до змінної alpha:

this->alpha

Це те саме, що й пряме посилання на alpha. Такий синтаксис обробляється без жодних проблем, але насправді він не виконує нічого важливого, просто показуючи, що вказівник this дійсно посилається на об’єкт.

 


<== попередня лекція | наступна лекція ==>
Клас-лічильник рядків | Використання this для повернення значення


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн