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.

   


 

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

38630. РОЗРОБЛЕННЯ ПРОЕКТУ СУПРОВОДУ СИСТЕМИ УПРАВЛІННЯ ДОРОЖНІМ ТРАФІКОМ НА БАЗІ ІНТЕЛЕКТУАЛЬНОЇ СИСТЕМИ ВІДЕОСПОСТЕРЕЖЕННЯ 2.75 MB
  Необхідно встановити систему інтелектуального відеоспостереження за найбільш завантаженими транспортом вулицями яка буде здатна самостійно фіксувати деякі порушення правил дорожнього руху таки як перевищення швидкості проїзд на червоне світло проїзд у забороненому напрямку виїзд на зустрічну смугу порушення дорожньої розмітки та інші і оформляти штрафи відповідно базі даних номерів автомобілів і систему штрафів Придністровської Молдавської Республіки а також мати можливість розпізнавання викрадених транспортних засобів. Планується...
38631. «Облачные» ресурсы 37.21 KB
  Одним из следствий процесса глобализации и интеграционных процессов стало появление «облачных» технологий, что позволяет пользователю не быть привязанным к географической точке и активизировать процесс обмена даже весьма большими объемами информации.
38632. МОДЕРНИЗАЦИЯ ТЕПЛОФИКАЦИОННОЙ УСТАНОВКИ ПАРОВОЙ ТУРБИНЫ Т-100-130 УРАЛЬСКОГО ТУРБИННОГО ЗАВОДА 277.5 KB
  Подогрев обратной сетевой воды производится в ПСГ1 и ПСГ2 . В зимнее время для подогрева воды можно использовать также встроенный в конденсатор выделенный пучок. При такой схеме подача циркуляционной воды в конденсатор сокращается и вакуум в нём ухудшается. Целью модернизации ТФУ является повышение термического КПД паровой турбины за счет увеличения температуры обратной сетевой воды на входе в ПСГ1 ПСГ2 что ведет к уменьшению расхода греющего пара в них и к уменьшению расхода топлива на его генерацию.
38633. Підвищення енергоефективності очистки стоків тваринницьких ферм 1.55 MB
  1 Визначення виходу біогазу.4 Визначення виходу біогазу в залежності від циклу бродіння і кількість енергії біогазу даного підприємства .6 Визначення енергії товарного біогазу і коефіцієнту товарності 2.1 Дослідження залежності виходу біогазу від тривалості циклу бродіння.
38634. Проект производственно-отопительной котельной 4.74 MB
  Характеристика исходной воды жесткость общая мгэкв кг___________________________________________ жесткость карбонатная мгэкв кг______________________________________ содержание ионов натрия____________________________________________ РАСЧЕТНО ПОЯСНИТЕТЕЛЬНАЯ ЗАПИСКА Раздел 1. Основной частью её является собственно паровой котел в котором осуществляется превращение воды в насыщенный пар. Подачи и сжигания топлива; очистки химической подготовки и деаэрации воды; теплообменные аппараты различного назначения; насосы исходной сырой воды...
38636. Мероприятия по улучшению финансово-экономического состояния ООО «Мис» 2.82 MB
  Теоретические основы анализа финансовоэкономической деятельности предприятия. Сущность анализа финансового состояния предприятия.2 Информационная база анализа финансового состояния предприятия.3 Методика анализа финансовоэкономической деятельности предприятия.
38637. Транскриптомный анализ генов контроля генеза митохондрий и реактивности иммунной системы при действии адаптогенов 198.5 KB
  В соответствии с вышесказанным, в планируемой работе, с целью поиска подходов к специфической модуляции гена PGC-1α, мы планировали решение серии взаимосвязанных задач методического и методологического плана. В частности, предполагалось освоение методик культивирования клеток человека для постановки in vitro экспериментов
38638. Использование инструментов интегрированных маркетинговых коммуникаций для продвижения туристского маршрута (на примере турфирмы «Чудесный отдых») 548.5 KB
  2 Специфика использования инструментов ИМК в турбизнесе для формирования позитивного имиджа компании [2] 2 Анализ деятельности туристского предприятияООО Чудесный Отдых [2. Объектом исследования выбрано туристическая фирма Чудесный отдых и его деятельность по продвижению туристических маршрутов. Цели и задачи: разработка рекомендаций для туристической фирмы Чудесный отдых для более эффективного продвижения туристических маршрутов при помощи интегрированных маркетинговых коммуникаций; провести анализ литературы по проблемам...