67201

Вказівник this

Лекция

Информатика, кибернетика и программирование

Під час кожного виклику функції-члена класу їй автоматично передається вказівник на об'єкт, який іменується ключовим словом this, для якого викликається ця функція. Вказівник this – це неявний параметр, який приймається всіма функціями-членами класу.

Украинкский

2014-09-06

34 KB

1 чел.

Лекція № 8

Тема: Вказівник this

    Під час кожного виклику функції-члена класу їй автоматично передається вказівник на об'єкт, який  іменується ключовим словом  this, для якого викликається ця функція. Вказівник this – це неявний параметр, який приймається всіма функціями-членами класу. Отже, в будь-якій функції-члені класу вказівник this використовується для посилання на викликуваний об'єкт.

    Як уже  зазначалося вище, функція-член класу може мати прямий доступ до закритих (private)  членів-даних  свого  класу.  Наприклад,  нехай  визначено  такий клас:

class myClass 

{     int c;

     void Fun() {...};

     // ...

};

    У  тілі функції  Fun() можна  використовувати  таку  настанову  для  присвоєння члену c значення 10:

c = 10;

Насправді попередня настанова є скороченою формою такої:

this->c = 10;

Щоби зрозуміти, як працює вказівник this, розглянемо таку навчальну програму.

Приклад 1.  Демонстрація механізму застосування ключового слова this 

class myClass

{           int c;

       public:

 void Get(int n)   { this->c = n; }          // те саме, що c = n

 int Put()     { return this->c; }             // те саме, що return c

};

 

int main()

{      myClass Obj;   

       Obj.Get(100);

       cout << "c= " << Obj.Put() << endl;

       getch(); return 0;

}

    Внаслідок виконання ця програма відображає на екрані число 100. Безумовно, цей приклад тривіальний, але у ньому показано, як можна використовувати  вказівник this.  З  матеріалу  наступних  тем Ви  зрозумієте,  чому вказівник this є таким важливим для написання програм мовою C++.

    Кожна нестатична функція-член класу має доступ до обєкта, для якого вона викликана, через ключове слово this. Зазвичай, вказівник this використовують для повернення вказівника ( return this) або посилання ( return *this) на об’єкт класу.

Приклад 2.  Демонстрація механізму застосування ключового слова this 

class A

{

 int i;

public:

A(int i1) {i=i1;}

 void show(){cout<<"i="<<i<<endl;}

 void print()

{

 show();

 this->show();

 (*this).show();

}

};

void main()

{

A obj(1);

obj.print();

}

  Результати виконання програми:

і=1

і=1

і=1

   Вказівник this дуже важливий при перевантаженні операторів.

   Пам'ятаєте, що вказівник this автоматично передається всім функціям-членам.

   На закінчення зробимо два важливі зауваження. По-перше, дружні функції ( не є функціями-членами), і, отже, їм не передається вказівник this. По-друге, статичні функції-члени також не отримують вказівник  this.

   


 

А также другие работы, которые могут Вас заинтересовать

26190. Диссоциативные расстройства 14.55 KB
  В современной психиатрии термин диссоциативные расстройства используется для обозначения трех феноменов: возникновения множественной личности психогенной фуги психогенной амнезии. В американской классификации DSMIV термины диссоциативный и конверсионный имеют разное значение: понятие конверсионное расстройство используют для определения тех психологически детерминированных расстройств которые проявляются соматическими симптомами; в то время как понятие диссоциативные расстройства относится к расстройствам которые проявляются...
26191. Депресси́вный синдро́м 19.74 KB
  При депрессии снижена самооценка наблюдается потеря интереса к жизни и привычной деятельности.Различают униполярные депрессии при которых настроение остаётся в пределах одного сниженного полюса и биполярные депрессии являющиеся составной частью биполярного аффективного расстройства которые перемежаются маниакальными гипоманиакальными либо смешанными аффективными эпизодами. Можно выделить следующие формы униполярных депрессий Большое депрессивное расстройство часто называемое клинической депрессиейМалая депрессия которая не...
26192. Медикаментозное лечение и психотерапия 15.73 KB
  Психотерапия Психотерапия является не альтернативой а важным дополнением к медикаментозному лечению депрессий. В отличие от медикаментозного лечения психотерапия предполагает более активную роль пациента в процессе лечения. Психотерапия помогает больным развить навыки эмоциональной саморегуляции и в дальнейшем более эффективно справляться с кризисными ситуациями не погружаясь в депрессию.
26193. Нарушения психической деятельности при маниакальных состояниях 11.65 KB
  Женщины заболевают примерно в 2 раза чаще чем мужчины.У подростков значительно чаще классических вариантов наблюдаются депрессии в форме психопатических эквивалентов с асоциальным поведением. Депрессивные фазы встречаются в несколько раз чаще.
26195. Виды личностных расстройств: шизоидное, шизотипическое 11.75 KB
  Шизоидное расстройство личности Люди страдающие шизоидным расстройством личности испытывают глубокую отчужденность в отношениях изза трудностей в выражении эмоций. Люди с шизоидным расстройством личности ведут замкнутый образ жизни и очень осторожны в контактах с другими людьми. Люди с шизоидным расстройством личности производят впечатление далеких и холодных. Шизотипическое расстройство личности Шизотипическое или шизофренияподобное расстройство личности характеризуется необычностью мыслей убеждений и идей.
26196. Истерическое расстройство личности 18.29 KB
  Симптомы истерического расстройства личности Особенностью истерической психики является отсутствие четких границ между продукцией собственного воображения и действительностью. Зависимое расстройство личности Люди которые подвержены этому заболеванию уверены в том что они абсолютно беспомощны некомпетентны в любой сфере жизнедеятельности. Человек имеющий зависимое расстройство личности постоянно полагается на окружающих ждет что ктото решит его вопросы и ничего не может предпринять самостоятельно.