67201

Вказівник this

Лекция

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

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

Украинкский

2014-09-06

34 KB

0 чел.

Лекція № 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.

   


 

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

58163. Уровни организации живой природы 81 KB
  Ученые выделяют несколько уровней организации живой природы: молекулярный клеточный организменный популяционно-видовой экосистемный и биосферный. На молекулярном уровне изучаются молекулы которые находятся в клетке их строение и функции.
58164. Утверждение Новой Культуры 83 KB
  Появляется интерес к античной культуре происходит как бы её возрождение так и появился термин. Термин Возрождение встречается уже у итальянских гуманистов например у Джорджо Вазари. В настоящее время термин Возрождение превратился в метафору культурного расцвета: например Каролингское Возрождение IX века. Возрождение возникло в Италии где первые его признаки были заметны ещё в XIII и XIV веках в деятельности семейства Пизано Джотто Орканья и др.
58165. Збройні сили Київської Русі 138.5 KB
  Княжа дружина була зорганізована на зразок варязьких дружин. Хоча скандинавці втратили значення в Україні і мусили уступити з війська, але їх військову організацію, що визначалася дуже високими прикметами, князі зберегли та тільки її перетворили, відповідно до розвитку і потреб держави.
58166. Формы государства 51.5 KB
  Формы государства, как совокупность его внешних признаков представляет организацию государственной власти в стране, включая 3 взаимосвязанных элемента...
58167. Фізіологічна і соціальна зрілість. Взаємозв’язок фізіологічної та соціальної зрілості 42.5 KB
  Мета: сформувати в учнів поняття про фізіологічну й соціальну зрілість показати взаємозвязок фізіологічної та соціальної зрілості. Підлітковий вік характеризується переходом до фізичної й соціальної зрілості.
58168. Соединения неметаллических элементов с Водородом. Хлорид Водорода. Соляная кислота. Аммиак. Соли аммония 36 KB
  Ковалентная неполярная связь между атомами Водорода в молекуле Водорода образована перекрыванием двух 1S1 орбиталей двух атомов молекулярное вещество. В лаборатории водород добывают несколькими способами прежде всего реакцией металлов расположенных...
58169. Письмо. История письма 41 KB
  Письмо – это система начертательных знаков, используемых для фиксации речи. Оно возникло около 6000 лет тому назад, гораздо позднее, чем звуковой язык.
58170. ПРЕДМЕТ ТЕОРИИ ФИЗИЧЕСКОГО ВОСПИТАНИЯ И ЕГО ОСНОВНЫЕ ПОНЯТИЯ 38.5 KB
  Физическое развитие процесс формирования и последующего изменения на протяжении индивидуальной жизни естественных морфо-функциональных свойств организма ребенка и основанных на них психофизических качеств.