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.

   


 

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

43704. Разработка автоматизированной информационно-справочной системы для учета нефтедобывающего оборудования и контроля выполнения ремонтных работ предприятия «НоябрьскНефтеГазАвтоматика» 1.91 MB
  Целью данного дипломного проекта является разработка автоматизированной информационно-справочной системы для учета нефтедобывающего оборудования и контроля выполнения ремонтных работ предприятия НоябрьскНефтеГазАвтоматика. Задачами данного дипломного проекта являются: изучение предметной области; разработка модели бизнеспроцессов складских операций; выявление недостатков существующих бизнеспроцессов обработки информации при приеме заказов на монтаж и ремонт...
43705. Шляхи удосконалення маркетингової діяльності та маркетингової конкурентної стратегії ТОВ «Мар-Трейд» 837.15 KB
  Стратегія блакитних океанів Основні фактори формування та реалізації маркетингових конкурентних стратегій Розділ ІІ Дослідження маркетингової діяльності та маркетингової конкурентної стратегії ТОВ МарТрейд 2. Ці дослідники запропонували різні визначення терміна âконкурентна стратегіяâ та види базових конкурентних стратегій описали методи їх розроблення і впровадження в умовах розвинутої економіки. У процесі дослідження були використані наступні сучасні методи дослідження: статистичного аналізу при збиранні даних що аналізуються...
43706. УКРАЇНСЬКА МОВА ЗА ПРОФЕСІЙНИМ СПРЯМУВАННЯМ. Модульний курс 4.88 MB
  Містить комплекс вправ і завдань для вироблення навичок грамотного використання засобів української мови у професійній сфері. Розроблено систему вправ, спрямованих на формування умінь аналізу наукового стилю, написання текстів різних жанрів наукового мовлення, виявлення їх особливостей та оформлення, редагування, коригування та перекладу наукових текстів.
43707. Повышение финансовой устойчивости страховой организации на примере ОСАО «РЕСО-гарантия» 22.03 MB
  Дипломная работа построена следующим образом: в первой части рассмотрены теоретические аспекты, а именно: понятие и сущность финансовой устойчивости; во второй части проведен анализ финансово-хозяйственной деятельности организации; в третьей части проведенаработка мероприятий по оптимизации финансовой устойчивости, проведена оценка эффективности внедрения предложенных мероприятий.
43708. Подсистема анализа и контроля информационных блоков автоматической системы радиовещания 984.74 KB
  Рабочая станция должна иметь достаточную производительность, быструю дисковую подсистему, достаточный объем оперативной памяти для функционирования программного обеспечения. Рабочая станция должна содержать манипулятор мышь для удобной навигации в установленном программном обеспечении, так же должна иметься клавиатура для ввода текстовой информации.
43709. ОСОБЛИВОСТІ ПРАВОВОГО СТАТУСУ ОКРЕМИХ КАТЕГОРІЙ ГРОМАДЯН ЯК СУБ’ЄКТІВ АДМІНІСТРАТИВНОГО ПРАВА 165.17 KB
  ПОНЯТТЯ ТА ЗМІСТ ПРАВОВОГО СТАТУСУ ГРОМАДЯНИНА ЯК СУБЄКТА АДМІНІСТРАТИВНОГО ПРАВА Конституція України в преамбулі закріплює прагнення Українського народу розвивати і зміцнювати демократичну соціальну правову державу. Характер їх відносин зумовлюється положенням Конституції України про те що головним обовязком держави є утвердження і забезпечення прав і свобод людини. Термін âфізична особаâ ширший за термін âгромадянинâ оскільки включає не тільки громадян України а й громадян інших держав та осіб без громадянства. Конституція...
43710. Структура дистанционного курса (ДК) «Изготовление и испытание ПТМ» 6.4 MB
  В работе представлена структура дистанционного курса (ДК) «Изготовление и испытание ПТМ»; даны рекомендации по оформлению ДК, предложена информационная, содержательная и контрольно-мониторинговая части ДК «Изготовление и испытание ПТМ».
43711. Розробка моделі цінності інформаційних ресурсів для оптимізації побудови системи захисту інформації 302.91 KB
  Мета роботи розробка моделі цінності інформаційних ресурсів для оптимізації побудови системи захисту інформації. Обєкт дослідження цінність інформації якою володіє організація що в даній роботі позиціонується як інформаційні ресурси та входить до складу активів організації. Результатом роботи є адитивна модель цінності інформації яка включає основні елементи цінності легка для сприйняття та передбачає можливість модернізації в залежності від специфіки області в якій застосовується. Продовжити вдосконалення даної моделі можна більш...
43712. Разработка программного обеспечения для сжатия изображения 4.51 MB
  Особенность изображений состоит в том, что отдельные элементы изображения находятся в определенной связи с соседними элементами. Поэтому большинство алгоритмов преобразования изображений носит групповой характер (то есть группа пикселей)